6

在 Vim 正则表达式中,我知道可以在所有以using开头的行上替换foobar%

:g/^%/s/foo/bar/g

但我想在所有不以.开头的行上替换foo为 有没有办法轻松做到这一点?bar%

4

4 回答 4

11

尝试:vglobal

:v/^%/s/foo/bar/g
于 2013-01-22T21:03:08.033 回答
6

您可以%使用以下命令来否定角色character class:-

:g/^[^%]/s/foo/bar/g

[^%]匹配%字符串开头的除 , 之外的任何字符。

于 2013-01-22T21:00:04.090 回答
6

:gis的倒数:g!,因此您的示例可以表示为:

:g!/^%/s/foo/bar/g

请注意,这:g!只是另一种写作方式:v(参见 Jim Davis 的回答)

于 2013-01-22T21:05:57.060 回答
3

尝试:g/^[^%]/s/foo/bar/g匹配所有不以 % 开头的行

于 2013-01-22T20:59:55.657 回答