vim regex не потрібно \ для втечі


17

В Vim є можливість написати regexs в тому ж стилі , як Awk, наприклад ,

/sp\{0,\}/
було б

/sp{0,}/

Відповіді:


30

Попередньо ваш візерунок \vзробить шаблон «магічним», а символи на зразок {і [мають інтерпретоване значення (а літерали потрібно уникати).

Тож /\vsp{1,}знайдете те, що хотіли (я щойно тестував).

Ви можете зробити це свого роду невиконання перепризначення /на /\vнаступні рядки в вашому vimrc:

nnoremap / /\v
vnoremap / /\v

Дивіться :help patternдокладніше.


1

/sp\{0,}

Звичайно {0,}, вам краще скористатися *: /sp*якщо (як і вище) знайдете "s" з наступним нулем або більше p. Зауважте, що нуль і більше завжди вірні, тому в цьому конкретному виразі немає причини.


Це все було гарною інформацією та дуже корисно. Чи є спосіб перетворити втечу спеціальних символів у vim?
MageProspero

Я бачу, що ти маєш на увазі зараз. Я серйозно сумніваюся в цьому, що майже напевно вимагатиме паралельного розроблення аналізатора, і я сумніваюся, що це буде особливістю з достатньою вимогою, щоб виправдати додаткову реалізацію та обслуговування.
Кевін

-1

У Vim немає можливості наслідувати регулярні вирази у стилі awk, ні. Діалектів виразів існує дуже багато, і, на жаль, завжди є ці маленькі діалектичні відмінності, які слід відстежувати, переходячи від одного інструменту до іншого.

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