【问题标题】:Vim 'go to file' functionalityVim“转到文件”功能
【发布时间】:2012-01-23 19:48:31
【问题描述】:

我正在寻找一个很好的解决方案来解决尝试使用制表符完成/通配符匹配/骆驼案例等打开源树中的任何文件的问题。我遇到的困难是找到一种可行的方法在约 30,000 个文件和约 7000 个目录(包括隐藏的 .svn 目录)的代码库上。其他程序(例如 Resharper 或 Sublime Text Editor)几乎可以立即跳转到此代码库上的任何文件。

到目前为止,我已经尝试过将递归双星“**”添加到我的 Vim 路径和 FuzzyFinder 插件,但都无法处理大量文件和目录。使用这些方法,Vim 要么完全没有响应,要么至少非常迟钝。

【问题讨论】:

  • 您是否尝试了所有可用的替代方案(CommandT、LustyExplorer...)?我想你会发现所有这些文件导航插件的性能问题。 <C-]>:tag tagname 在如此庞大的代码库上表现如何?
  • 我的猜测(阅读我几乎可以保证)是其他解决方案至少构建一个具有目录结构的文件,但该文件也可能加载到内存中。我不确定你会如何在 Vim 中做到这一点,或者是否有任何插件可以为你处理它,但这就是你想要查看的内容。

标签: c# vim autocomplete


【解决方案1】:

曾几何时,在一个具有巨大目录树和数千个文件的旧项目中,我是这样做的(在一个空缓冲区中):

:read !tree -af /PATH/TO/PROJECT

瞧,现在我有一个带有目录树的缓冲区。现在我可以使用“标准”Vim 正则表达式搜索该缓冲区。如果我找到了该文件,我只需点击 gf 即可跳转到它。

如果您没有安装tree,您仍然可以使用:

:read !find /PATH/TO/PROJECT -type f -print 2>/dev/null

HTH

【讨论】:

  • 感谢这个想法,我想我最终会写一些基于此的函数或插件来做我需要的。
【解决方案2】:

试试Command-T。它支持驼峰式大小写,并且非常聪明地猜测您要查找的文件。 我发现它也很稳定。

【讨论】:

    【解决方案3】:

    虽然我没有尝试过,但我听说GNU GLOBAL 非常快。您可以通过gtags.vim 使用它。

    还有帮助provided 了解如何在 vim 中使用它。

    希望这会有所帮助。

    【讨论】:

    • 酷,从未听说过。我忘了提到我正在使用 C#,不幸的是 GNU GLOBAL 目前不支持。
    猜你喜欢
    • 2010-12-09
    • 1970-01-01
    • 2011-05-03
    • 2011-07-27
    • 1970-01-01
    • 2014-09-25
    • 2018-04-13
    • 1970-01-01
    • 2011-01-22
    相关资源
    最近更新 更多