vim:使用perl兼容的正则表达式进行交互式搜索和替换

gue*_*tli 13 vim perl replace

根据此页面,您可以使用perl兼容的正则表达式

:perldo s/pattern/insert/g.

这很好用.

但是,如何在vim中进行交互式搜索并替换为PCRE语法?

由于这不适perldo用于我搜索不同的解决方案.

Ken*_*ent 5

直到当前发布的vim版本,没有办法 :s/[perlRegex]/bar/c

所以你要求的是一个不存在的功能.

你可以做匹配verymagic,但它不是Perl Regex兼容的标志.它仍在使用vimregex引擎,只是改变了逃避正则表达式模式的方式.

例如,在perl中,你可以做前瞻/后退(?<=foo)..., (?=foo), (?!foo)..,你可以使用方便\K:som.*ing\Kwhatever等等,你不能直接在vim中使用那些语法,无论你设置了哪个'魔术'级别.Vim具有相同的功能,但语法不同:

\@=
\@!
\@<=
Run Code Online (Sandbox Code Playgroud)

而且\zs \ze它们非常方便,甚至比perl更强大\K.

Vim是一个编辑器,使用vim正则表达式,你不仅可以进行文本匹配,还可以根据视觉选择,光标位置等进行匹配.

如果你真的需要进行复杂的模式匹配,并且确实需要在vim中进行,请学习vim正则表达式!如果你"非常了解pcre"就不难了