直到当前发布的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"就不难了