仅当搜索结果存在时才使用 Vim 打开

仅当搜索结果存在时才使用 Vim 打开

:) 在我永无止境地努力变得更懒的过程中,我正在寻找一种方法来改进我的“在 Vim 中打开 Grep/Ack 结果”代码片段。我目前用来打开找到的文件的是:

vim $(ack -il "pattern")

使用它是一件轻而易举的事,但有一个问题 - 无论找到的文件数是否为 0,Vim 都会打开(换句话说,Vim 打开时缓冲区中没有任何内容)。有没有什么优雅的方法来避免这个完全无关紧要的问题?

提前致谢

答案1

这个怎么样?

files=$(ack -il "pattern") && vim $files

grep由于我没有,因此进行了测试。)请注意,如果返回的文件名称中带有空格,则ack该方法将不起作用。ack

答案2

当没有传递任何参数时如何立即退出 Vim:

vim -c 'if !argc()|quit|endif' $(ack -il "pattern")

相关内容