在Vim的正則表達式起跑線「酒吧」「富」,我知道這是可能使用bar
上開始%
所有線路更換foo
的Vim - 取代通過不「字」
:g/^%/s/foo/bar/g
但是我想在所有不以%
開頭的行上用bar
替換foo
。有沒有辦法輕鬆做到這一點?
在Vim的正則表達式起跑線「酒吧」「富」,我知道這是可能使用bar
上開始%
所有線路更換foo
的Vim - 取代通過不「字」
:g/^%/s/foo/bar/g
但是我想在所有不以%
開頭的行上用bar
替換foo
。有沒有辦法輕鬆做到這一點?
開始你可以只否定使用character class
的%
字符: -
:g/^[^%]/s/foo/bar/g
[^%]
匹配任何字符,除了%
,在字符串的開始。
嘗試:g/^[^%]/s/foo/bar/g
匹配的所有行不會%
嘗試:vglobal
:
:v/^%/s/foo/bar/g
的:g
倒數是:g!
,所以你的例子可以表示爲:
:g!/^%/s/foo/bar/g
注意:g!
是寫:v
(參見吉姆戴維斯的另一種方式'answer)