VIM快速“在文件中查找”?

时间:2009-07-07 23:10:08

标签: search vim full-text-search find code-search-engine

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

我们的代码库足够大,搜索需要处理索引。 grep / vimgrep / etc太慢了。

索引不需要特别快;我可以在一夜之间做索引。

谢谢,

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

6 个答案:

答案 0 :(得分:9)

如果是源代码(而不是全文搜索),那么带有TagList插件的ctags应该可以很好地满足您的需求。例如,见:

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机器上,但我不记得遇到任何问题。

答案 1 :(得分:5)

我使用的东西,但不是通过vim,是ack:http://betterthangrep.com/

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

答案 2 :(得分:4)

如果您正在使用大型代码库,那么可能是时候寻找比传统工具更强大的解决方案了。 OpenGrok是一个非常快速的源代码搜索和交叉引用引擎。除了出色的性能外,它还与SubversionMercurialClearCase以及其他源修订控制软件集成在一起。这听起来很像你可以使用的东西。

如果您希望支持在Vim中使用OpenGrok,您可以轻松编写一个调用system()来启动搜索的vim函数。要阅读有关编写新vim命令的更多信息,请在vim中查找:help 40.2

我希望这就是你要找的东西。

答案 3 :(得分:1)

我不知道我是怎么发现的,但看起来有人为google desktop编写了一个插件

答案 4 :(得分: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  

答案 5 :(得分:-1)

你可以试试这个

  

:vimgrep / something / * /

并且不要忘记在

之后打开搜索结果窗口
  

:CW