【问题标题】:Fast 'Find in Files' for VIM?VIM 的快速“在文件中查找”?
【发布时间】:2010-11-08 21:08:29
【问题描述】:

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

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

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

谢谢,

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 这对我来说效果很好。我们有数千个文件,一个普通的 grep(甚至 ack)可能需要几十秒。但是像:Ack --ruby *something* 这样的东西通常会在一两秒内返回,因为它只搜索文件的一个子集
      【解决方案3】:

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

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

      我希望这就是你要找的。​​p>

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

          尝试安装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 更快。
          【解决方案6】:

          你可以试试这个

          :vimgrep /something/ */

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

          :cw

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-03-21
            • 2013-04-11
            • 2015-07-09
            • 1970-01-01
            • 2017-01-02
            • 1970-01-01
            相关资源
            最近更新 更多