Зіставити два пробіли з поступовим пошуком


20

При пошуку:

C-s SPC SPC

Також відповідає одинарним пробілам. Я хочу відповідати рівно два місця.

Відповіді:


24

Використовуйте M-s SPCпід час Isearch для прямого перемикання відповідних пробілів. Під час прямого узгодження кожного SPCвведеного символу підбирається індивідуально. (Це було поведінкою Emacs за замовчуванням, BTW.)

Щоб налаштувати це як параметр налаштування поведінки за замовчуванням, search-whitespace-regexpна nil. ( M-x customize-option search-whitespace-regexp.)

Дивіться посібник GNU Emacs, вузол Special Isearch.


Дякую за це Може бути добре, щоб насправді помістити рядок .emacs (set-variable 'search-whitespace-regexp nil)туди. Спасибі.
Сірий

1
@Gray: set-variableне зберігає нове значення наполегливо, щоб не змінити поведінку за замовчуванням. Я думаю M-x customize-option, що саме тут вимагається.
Дрю

О, я говорив про це у файлі dot emacs. Не знаю про параметр налаштування. Дякуємо за редагування
Сірий

3

Використання додаткового пошуку regexp вирішує проблему, якщо уникнути пробілів:

C-M-s \SPC\SPC

Ви також можете використовувати пошук і заміну без зворотних нахилів, якщо ви це хочете:

M-% SPC SPC

Я зіткнувся з тією ж проблемою і сьогодні, коли будував макрос клавіатури. Ця відповідь вирішила проблему для мене, хоча мені довелося ESC C-sзамість цього використовувати комбінацію клавіш . Дивіться також github.com/leoliu/ggtags/issues/64
Jonas Dahlbæk

3

Використання пошуку за допомогою regexp допомагає, але ви також можете переконатися в буквальних пробілах для пошуку, використовуючи C-q SPCпроцитування пробілу в пошуку.

Щоб потім виправити відповідь @ Rovanion, скориставшись isearch-forward-regexp:

C-M-s C-q SPC C-q SPC

Це дозволить шукати два проміжки поспіль. Цікаво, що isearch-forward-regexpпотрібні дискретні відповідники. Пошук aaaпо aaвідповідатиме тільки один раз і не раз з другого символу.


Щодо вашої останньої ноти, уявіть собі пошук "нульового чи більше пробілів, за яким йде річ", і, враховуючи N символів провідних пробілів, потрібно пройти всі N + 1 окремих матчів. Я бачу, що це розумний варіант надати, але це було б жахливим дефолтом.
філс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.