2

我应该如何在 vim 的命令提示符下将以下内容作为单个字符串输入

:let v:errmsg = ""  
:silent! /\cend of .*project gutenberg  
:if v:errmsg != ""  
:echo "Not found"  
:endif  

这不起作用,不会打印消息。

:let v:errmsg = ""|:silent! /\cend of .*project gutenberg|:if v:errmsg != ""|:echo "Not found"|:endif  
4

2 回答 2

2

好吧,问题是您正在进行的正常搜索。范围搜索看到 | 作为其参数的一部分,因此它不能用于输入另一个命令。因此,将其包装到 :exe 调用中,如下所示:

let v:errmsg = ""|exe 'sil! /\cend of .*project gutenberg'|if v:errmsg != ""|echo "Not found"|endif 
于 2013-03-31T19:30:44.963 回答
0

在您的情况下,范围搜索可能不是最佳选择。您可以使用

if !search('\cend of .*project gutenberg') | echo 'Not found' | endif

如果您可以不更新最后的搜索模式。

于 2013-03-31T20:29:42.987 回答