VIM快速搜索多个文件的方法?

20

有哪些选项可以在VIM中快速进行“查找文件”搜索?

我们的代码库很大,需要在索引文件的基础上进行搜索。grep/vimgrep等工具速度太慢。

索引构建速度不需要非常快,可以在晚上进行。

谢谢!

[编辑] 我也在Windows环境中工作。

6个回答

10
如果您需要的是源代码而不是全文搜索,那么ctags与TagList插件应该很适合您的需求。例如,参见:http://www.thegeekstuff.com/2009/04/ctags-taglist-vi-vim-editor-as-sourece-code-browser/。编辑:TagList和ctags在Windows上也可以使用(这就是我使用的方式)。请参阅TagList安装页面和FAQ。以下链接可能会有所帮助:还有一个TagList论坛,您可以在那里获取更多帮助:http://tech.groups.yahoo.com/group/taglist/。我以前在我的Windows机器上设置过它,但我不记得遇到任何问题了。

5

除了vim之外,我使用的另一个工具是ack:http://betterthangrep.com/

它是一个基于perl的工具,应该可以在Windows中使用。


这对我非常有效。我们有成千上万的文件,普通的grep(甚至是ack)可能需要十几秒钟。但是像 :Ack --ruby *something* 这样的东西通常只需要一两秒钟就能返回结果,因为它只搜索了文件的子集。 - Adam Batkin

4
如果你正在处理一个大型代码库,那么可能是时候寻找比传统工具更强大的解决方案了。OpenGrok 是一个非常快速的源代码搜索和交叉引用引擎。除了其出色的性能外,它还与 Subversion, Mercurial, 和 ClearCase 等源代码版本控制软件集成。听起来像是你可以使用的东西。
如果你想要支持在 Vim 中使用 OpenGrok,你可以轻松编写一个 vim 函数来调用 system() 来启动搜索。要了解更多关于编写新 vim 命令的信息,请在 vim 中查找 :help 40.2
希望这就是你所寻找的。

1

我不知道我是怎么找到这个的,但看起来有人为谷歌桌面编写了一个插件。


0
尝试安装https://github.com/mileszs/ack.vimhttp://beyondgrep.com/
然后创建一个链接。
ln -s /usr/bin/ack-grep /usr/bin/ack 

并添加

noremap <C-f> :copen<CR>:Ack -aQi --ignore-dir someignoringdir

将以下代码添加到你的 .vimrc 文件中,之后你就可以通过 Ctrl+F 查找文件了。享受吧!
_   /|
\'o.O'
=(___)=
   U  

不确定这是否比内置的grep或vimgrep更快。 - sixtyfootersdude

-1
你可以尝试这个:

:vimgrep /something/ */

然后别忘了打开搜索结果窗口:

:cw


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接