在Vim doens和x27中替换;似乎在全球范围内不起作用?
我的在Vim doens和x27中替换;似乎在全球范围内不起作用?,vim,macvim,Vim,Macvim,我的substitute中的global选项似乎不起作用。即使我用gset替换,它也只替换当前行中的文本。如果我在当前线路上再次运行它,而当前线路上没有任何匹配项,它将为我提供 E486:找不到模式:{patt} 如果我去下一场比赛,并再次运行它,它的工作为该行罚款。但是使用g和不使用它没有任何区别 有什么问题吗 printf("abc"); printf("def"); 执行:s/printf/print/g会同时突出显示printf的,但仅会替换第一个。我需要做n来进行下一场比赛并重新运行
substitute
中的global
选项似乎不起作用。即使我用g
set替换,它也只替换当前行中的文本。如果我在当前线路上再次运行它,而当前线路上没有任何匹配项,它将为我提供
E486:找不到模式:{patt}
如果我去下一场比赛,并再次运行它,它的工作为该行罚款。但是使用g
和不使用它没有任何区别
有什么问题吗
printf("abc");
printf("def");
执行
:s/printf/print/g
会同时突出显示printf的
,但仅会替换第一个。我需要做n
来进行下一场比赛并重新运行替补 g标志是每行多次替换模式
您要查找的是对整个缓冲区运行s//
命令:
:%s/pattern/replacement/g
注意s//
前面的%
,以选择整个缓冲区。它也可以是这样的一系列行:
:10,21s/pattern/replacement/g
执行第10行和第21行之间的更换
如果没有
g
标志,则每行仅替换第一次出现的模式。如果不想每次手动添加g标志,可以设置选项gdefault
,默认情况下,该选项将使搜索全局化。使用gdefault时,请记住,将/g
添加到结尾将颠倒其含义。因此在这种情况下,/g
将是非全局的。