省略';找不到模式';Vim脚本中的错误消息

省略';找不到模式';Vim脚本中的错误消息,vim,vi,Vim,Vi,我在我的.vimrc中添加了一个函数,它只包含几个搜索和替换命令。但是,如果没有找到其中一个模式,我会收到一条错误消息,需要输入。我如何才能抑制这种情况?您可以使用静默: :silent %s/x/y/g 或者,如果需要执行字符串操作以确定要搜索和替换的字符串: exec ":silent %s/x/" . varName . "/g" 我不是100%确定,但我认为静默只在脚本中有效。也许:he:silent可以用来抑制那些错误?你可以使用:silent或:silent作为任何命令的前缀,或

我在我的.vimrc中添加了一个函数,它只包含几个搜索和替换命令。但是,如果没有找到其中一个模式,我会收到一条错误消息,需要输入。我如何才能抑制这种情况?

您可以使用静默:

:silent %s/x/y/g
或者,如果需要执行字符串操作以确定要搜索和替换的字符串:

exec ":silent %s/x/" . varName . "/g"

我不是100%确定,但我认为
静默
只在脚本中有效。

也许:he:silent可以用来抑制那些错误?

你可以使用
:silent
:silent
作为任何命令的前缀,或者您可以将“e”选项添加到替换项中,这通常更容易

:%s/x/y/ge
:silent! %s/x/y/g
:silent %s/x/y/g
有关详细信息,请参阅

:help :silent
:help :s_flags

e
标志上的信息是
:s_标志
帮助中的几段内容。

可能有点离题,但我在搜索vim中“搜索模式未找到”错误的解决方案时发现了这条线索,当时我想搜索vim中的下一个错误。按下“n”时,以下映射忽略了错误


地图n:安静/

@DrAI这可以在
vimrc
中配置吗?i、 e.我能不能只做
%s
,它就会拿起
e
旗?@Krishna,据我所知,不是这样。我想您可能会想出一个在开始时添加沉默的映射,例如,
cnoremap%s silent%s
,但它可能会产生意外的后果(例如,如果您在命令开头以外的其他地方键入%s)。