在 Vim 正则表达式中,我知道可以在所有以using开头的行上替换foo
为bar
%
:g/^%/s/foo/bar/g
但我想在所有不以.开头的行上替换foo
为 有没有办法轻松做到这一点?bar
%
尝试:vglobal
:
:v/^%/s/foo/bar/g
您可以%
使用以下命令来否定角色character class
:-
:g/^[^%]/s/foo/bar/g
[^%]
匹配%
字符串开头的除 , 之外的任何字符。
:g
is的倒数:g!
,因此您的示例可以表示为:
:g!/^%/s/foo/bar/g
请注意,这:g!
只是另一种写作方式:v
(参见 Jim Davis 的回答)
尝试:g/^[^%]/s/foo/bar/g
匹配所有不以 % 开头的行