我使用Vim编写多年,主要用NerdTree来处理一个包含多个文件的大项目 - 比如MVC框架。
但我经常遇到一个问题,如何在项目中找到文件中的单词,句子,关键词?所有文件都未在缓冲区中打开。 我过去常常使用这个发现和终端中的grep命令但是需要我将vim放在hte后台,复制文件的名称并返回到vim。
找到。 -type f -name * .js -print0 | xargs -0 grep -i foo
不是真的用户友好...
有更好/更快的方法吗?
答案 0 :(得分:5)
有不同的方法可以做到这一点:
:vimgrep
执行grep 使用:vim
或ack插件,找到的文件路径+名称将列在quickfix列表中,以便您轻松跳转。
我也写了一个脚本在quickfix列表上再次做“grep”,也可能有帮助:
答案 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!
而不用大张旗鼓。