Emacs Space Regex Поиск - PullRequest
       2

Emacs Space Regex Поиск

2 голосов
/ 24 апреля 2011

Я хочу найти x пробелов в начале строки, используя интерактивный регулярный поиск. ^SPC< выбирает все строки, начиная с переменного количества пробелов. Согласно emacs wiki

 (setq search-whitespace-regexp " ")

Должен решить эту проблему, но это меняет поведение: он выбирает один пробел, когда я ввожу несколько пробелов в моем поиске. Я не помню такого поведения из более ранних версий emacs (сейчас используется 23.2). Есть ли способ заставить интерактивный поиск выбрать один пробел при вводе одного пробела и x пробелов при вводе x пробелов?

веселит Йерун

Ответы [ 2 ]

4 голосов
/ 24 апреля 2011

Я думаю, что поведение, которое вы наблюдаете, является намеченным. Из документации search-whitespace-regexp:

Если не ноль, регулярное выражение для соответствовать последовательности пробельных символов. [...] Когда вы ставите пробел или пробелы в добавочном регулярном выражении это стоит для этого.

Обратите внимание на второе предложение - всякий раз, когда вы вводите один (или несколько) пробел в вашем регулярном выражении, это интерпретируется так, как будто вы ввели значение search-whitespace-regexp. Поскольку вы определили эту переменную как один пробел, один или несколько пробелов в вашем регулярном выражении будут соответствовать только одному пробелу в вашем буфере.

Вероятно, самый простой способ достичь желаемого - просто установить переменную на nil, и в этом случае пробелы больше не обрабатываются особым образом в интерактивных поисках регулярных выражений. Один пробел в вашем регулярном выражении будет соответствовать только одному пробелу в буфере.

(setq search-whitespace-regexp nil)
1 голос
/ 24 апреля 2011

Вы можете попробовать ^[ ]\{5\}<, чтобы получить строки, начинающиеся с 5 пробелов, за которыми следует <.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...