6

Vimの正規表現では、を使用してfoo始まるbarすべての行でで置き換えることが可能であることを私は知っています%

: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

の逆:g: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 に答える