vim替换一行中多个匹配

一般在vim中,进行字符串替换的方式是使用s来替换,举个例子来说:

加入一个文件内容如下:

hello abc hello
hello
hello abc hello hello
hello

如果使用goodbye来替换hello:

%s/hello/goodbye/g

那么我们预期的内容会是:

goodbye abc goodbye
goodbye
goodbye abc goodbye goodbye
goodbye

但是,它实际的内容是:

goodbye abc hello
goodbye
goodbye abc hello hello
goodbye

也就是说,参数g每行最多替换1次,想要达到实际的目的,需要使用命令应该是:

%s/hello/goodbye/gg

两个g参数,能够替换所有内容,在行内,能进行多次替换。