Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Vim doens和x27中替换;似乎在全球范围内不起作用?_Vim_Macvim - Fatal编程技术网

在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
将是非全局的。