使用Vim在多个文件中查找单词的最佳方法是什么

时间:2013-12-27 23:05:39

标签: vim

我使用Vim编写多年,主要用NerdTree来处理一个包含多个文件的大项目 - 比如MVC框架。

但我经常遇到一个问题,如何在项目中找到文件中的单词,句子,关键词?所有文件都未在缓冲区中打开。 我过去常常使用这个发现和终端中的grep命令但是需要我将vim放在hte后台,复制文件的名称并返回到vim。

  找到。 -type f -name * .js -print0 | xargs -0 grep -i foo

不是真的用户友好...

有更好/更快的方法吗?

3 个答案:

答案 0 :(得分:5)

有不同的方法可以做到这一点:

使用:vim或ack插件,找到的文件路径+名称将列在quickfix列表中,以便您轻松跳转。

我也写了一个脚本在quickfix列表上再次做“grep”,也可能有帮助:

https://github.com/sk1418/QFGrep

答案 1 :(得分:1)

您可以使用r:

运行外部命令
:r! command-to-run

您可以使用现有的find命令:

:r! find . -type f -name *.js -print0 | xargs -0 grep -i foo

运行此命令的输出将插入当前缓冲区。

答案 2 :(得分:1)

我倾向于这样做:

:split
:enew
:r!find . -type f -name *.js -print0 | xargs -0 grep -i foo

将在新缓冲区中显示结果。如果你添加

:set buftype=nofile

然后它会把它变成一个临时缓冲区,你可以:q!而不用大张旗鼓。