从命令行调用,如果搜索不匹配,也显示文件

时间:2018-01-22 13:41:20

标签: vim command-line arguments

我使用msdos脚本用vim搜索模式并向我显示结果

脚本:tel.bat

rem script is called: tel.bat <pattern>
gvim -R %WORKSPACE%\telliste.csv "+set ignorecase" "+set ft=javascript" -c /%1 

如果文件中存在模式,则此方法可以正常工作。如果模式不匹配,我收到一条错误消息,我被卡住了。没有击键或鼠标操作会改变状态。喜欢:

Enter key - has no effect
Esc key   - has no effect
Ctrl + C  - the error-messages disappears, but the editor is frozen. No action possible
Mouse click in editor - has no effect

我只能关闭vim并再试一次。当我在命令行上调用脚本tel.bat konez时,这就是我得到的错误:

vim error message

翻译错误消息:

Error during execution of "command line": 
E486: Pattern not found: konez
Confirm with the ENTER Key or place a command

即使找不到模式,我怎样才能进一步处理文件?换句话说,我怎么能避免我被困在vim中。

我已在批处理文件中尝试使用-c ":execute 'silent !'",但无法识别。也许我是以错误的方式做到的......

1 个答案:

答案 0 :(得分:2)

这个应该工作,我无法在Vim版本8.0.1358的Linux上重现这个;我可以使用<Enter>接受错误消息并继续。

这可能是一个插件/配置问题;尝试使用gvim --clean启动。

多行错误消息很难看。你可以通过转移到较低级别的search()函数来避免它:

gvim ... -c "call search('%1')"

通过评估其回报值;您还可以制作自己的错误消息:if search(...) == 0 | echomsg 'No matches' | endif