在Vim的正则表达式,我知道这是可能取代foo
由bar
上开始的所有生产线%
使用
:g/^%/s/foo/bar/g
Run Code Online (Sandbox Code Playgroud)
但我想,以取代foo
由bar
所有线路上不启动%
.有没有办法轻松这样做?
您可以%
使用character class
以下方法否定角色: -
:g/^[^%]/s/foo/bar/g
Run Code Online (Sandbox Code Playgroud)
[^%]
匹配除%
字符串开头之外的任何字符.
相反的:g
是:g!
,所以你的例子可以表达:
:g!/^%/s/foo/bar/g
Run Code Online (Sandbox Code Playgroud)
请注意,这:g!
只是另一种写作方式:v
(参见Jim Davis的回答)