Шукайте рядкові ігнорування нових рядків


11

Я звик писати файли, де абзаци розділені на кілька рядків, наприклад, з fill-column. Коли я шукаю рядок ( C-s), такий як this is a long text, результати пошуку не повертають місця, де рядок відображається з розривом рядка між двома словами (як this\nis a long text).

Чи є команда, яка також повертає ці результати?

Відповіді:


11

Подивіться на змінні isearch-lax-whitespace, isearch-regexp-lax-whitespaceі search-whitespace-regexp.

Якщо перші дві змінні встановлені на щось не-нульове (наприклад t), будь-який пробільний символ у вашій пошуковій рядку буде відповідати будь-якій послідовності, узгодженій з регулярним виразом, визначеним search-whitespace-regexpзмінною.

Щоб відповідати слова в перервах рядків, виконайте це:

(setq isearch-lax-whitespace t)
(setq isearch-regexp-lax-whitespace t)
(setq search-whitespace-regexp "[ \t\r\n]+")

Пробільний символ у вашому запиті тепер буде відповідати будь-якому пробілу, вкладці чи рядку рядків будь-яку кількість разів.


Дякую, але це не працює для мене. Моя версія Emacs - 23.4.1. Мабуть, він не має змінної "isearch-lax-whitespace".
Тоні

1
Так, ці функції були введені в Emacs 24.3. Будь-який шанс перейти на більш нову версію? Версії 23.4.1 вже більше трьох років.
rekado

2
Спробуйте isearch-forward-word, до якого пов'язаний M-s wостанній Emacs.
politza

Emacs 23 не працював для мене, переконайтеся, що ви використовуєте 24.
ragerdl
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.