根据this page您可以使用 perl 兼容的正则表达式
:perldo s/pattern/insert/g
。
这很好用。
但是,如何在 vim 中使用 PCRE 语法进行交互式搜索和替换?
由于这不适用于 perldo
,我寻找不同的解决方案。
最佳答案
直到当前发行的vim版本,还没有办法做到:s/[perlRegex]/bar/c
所以您要求的功能并不存在。
您可以使用 verymagic
进行匹配,但是它不是 Perl Regex 兼容标志。它仍然使用 vimregex 引擎,只是改变了转义正则表达式模式的方式。
例如,在 Perl 中,您可以执行前瞻/后瞻 (?<=foo)..., (?=foo), (?!foo)..
,您可以使用方便的\K
:som.*ing\Kwhatever
等等,无论你设置了哪个“魔法”级别,你都不能直接在 vim 中使用这些语法。 Vim 具有相同的功能,但语法不同:
\@=
\@!
\@<=
还有 \zs \ze
非常方便,甚至比 perl 的功能更强大 \K
.
Vim 是一个编辑器,使用 vim 正则表达式,您不仅可以进行文本匹配,还可以根据视觉选择、光标位置等进行匹配。
如果您确实需要进行复杂的模式匹配并且确实需要在 vim 中进行,请学习 vim 正则表达式!如果你“对PCR非常了解”,这对你来说并不困难
关于perl - vim:交互式搜索并替换为与 perl 兼容的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32434222/