Я хочу использовать регулярные выражения 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 . Это очень полезно, и у меня не было проблем с этим.