Я хочу использовать регулярные выражения perl в командной строке vim. Например, чтобы использовать слова с заглавной буквы в текущей строке, вы можете набрать:
:s/(\w+)/\u$1/g
Я хочу использовать регулярные выражения perl в командной строке vim. Например, чтобы использовать слова с заглавной буквы в текущей строке, вы можете набрать:
:s/(\w+)/\u$1/g
Ответы:
Вы можете отфильтровать любую строку или диапазон строк с помощью внешней команды в vim, используя!. Например, вы можете сделать:
:.!perl -pe "s/(\w+)/\u\1/g"
который отфильтрует текущую строку через эту команду perl. (Здесь, :чтобы перейти в режим командной строки, а .следующее означает текущую строку; вы также можете указать диапазон строк или %для всего файла и т. Д.)
Если вы хотите использовать встроенные шаблоны подстановки в vim, вам лучше всего использовать опцию vim «очень волшебная», \ v, вот так:
:s/\v(\w+)/\u\1/g
смотрите :help patternи :help substituteдля более подробной информации. Я не думаю, что «очень волшебство» вполне идентично шаблонам Perl, но очень близко. В любом случае, вы всегда можете использовать сам Perl, если вам удобнее, как указано выше.
(обрабатывается специально, пока {нет: «все символы ASCII, кроме« 0 »-« 9 »,« a »-« z »,« A »-« Z »и «_» имеют особое значение ». Благодарность!
Нет, вы не можете использовать регулярные выражения Perl таким образом. Для получения справки по изучению эквивалентов Vim для компонентов регулярных выражений Perl см.
:help perl-patterns
Однако вы можете использовать Perl в качестве внешнего фильтра, как объяснено в frabjous. Вы также можете выполнять команды Perl в Vim, используя интерфейс Perl, если ваш Vim был скомпилирован с этой +perlфункцией. Видеть
:help if_perl.txt
:help perl-patternsрешил одну вещь, которую я раньше ненавидел в vim
Вы также можете использовать:
/\v"your regex"
вместо того:
/"your regex"
nnoremap / /\vи vnoremap / /\v.vimrc, чтобы при вводе /он просто работал.
Вот решение от http://vim.wikia.com/wiki/Perl_compatible_regular_expressions
:perldo s/(\w+)/\u$1/g
(Подтвердите с :verэтим +perlили +perl/dynскомпилировано в.)
Используйте плагин eregex.vim . Это очень полезно, и у меня не было проблем с этим.