Vim中的替代品似乎不能在全球范围内运作?

时间:2014-01-11 09:05:55

标签: vim macvim

global中的substitute选项似乎不起作用。即使我用g替换它,它也仅在当前行中替换文本。如果我在停留在没有更多匹配的当前行上再次运行它,它会给我

  

E486:未找到模式:{patt}

如果我进入下一场比赛并再次运行,那么该线路正常。但是使用g并且不使用它几乎没有区别。

关于什么是错的任何想法?

printf("abc");
printf("def");

执行:s/printf/print/g会突出显示printf's但仅替换第一个n。我需要{{1}}进行下一场比赛并重新运行替补。

1 个答案:

答案 0 :(得分:6)

g标志是每行多次替换模式

您正在寻找的是为整个缓冲区运行s///命令:

:%s/pattern/replacement/g

注意%前面的s///,以选择整个缓冲区。它也可以是这样的一系列行:

:10,21s/pattern/replacement/g

执行第10行和第21行之间的替换。

如果没有g标记,则每行只会替换第一次出现的模式。