18

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

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

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

谢谢,

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

4

6 回答 6

9

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

http://www.thegeekstuff.com/2009/04/ctags-taglist-vi-vim-editor-as-sourcece-code-browser/

编辑: TagList 和 ctags 也可以在 Windows 上运行(这就是我使用的)。请参阅 TagList 安装页面和常见问题解答。以下链接可能有用:

还有一个 TagList 论坛,您可以在其中获得更多帮助:

http://tech.groups.yahoo.com/group/taglist/

不久前我在我的 Windows 机器上设置了它,但我不记得遇到任何问题。

于 2009-07-07T23:16:10.700 回答
5

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

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

于 2009-07-09T12:28:50.853 回答
4

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

如果你想支持在 Vim 中使用 OpenGrok,你可以很容易地编写一个 vim 函数来调用system()来开始搜索。要阅读有关编写新 vim 命令的更多信息,请:help 40.2在 vim 中查找。

我希望这就是你要找的。

于 2009-07-07T23:35:04.890 回答
1

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

于 2009-07-07T23:18:17.950 回答
0

尝试安装https://github.com/mileszs/ack.vim , http://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  
于 2013-09-04T07:34:00.263 回答
-1

你可以试试这个

:vimgrep /某事/ * /

并且不要忘记在之后打开搜索结果窗口

:cw

于 2013-05-24T07:39:09.590 回答