您如何使用VIM中的大型项目

时间:2013-09-26 14:03:28

标签: vim nerdtree minibufexplorer ctrlp

我有大量项目,包含多个级别的文件夹。某些文件的名称相同,具体取决于文件夹名称,其功能各不相同。例如

/admin/action1.php
/action1.php

第一个将引用管理任务,第二个将由用户访问。 Vim很快就被标签和缓冲区弄得乱七八糟,而且很难移动。 我正在使用的插件是: NERDTree CtrlP MiniBuffExplorer

我正在使用gVim for Windows,像YouCompleteMe这样的插件不是一种选择。

  • NerdTree - 在大项目的文件夹之间来回移动太笨拙了
  • CtrlP - 您必须始终通过键入名称来了解您要查找的内容
  • MiniBuffExplorer - 有大量的文件,占用屏幕上的空间,无法找到任何东西
  • Vim-Session - 打开项目的保存选项卡/窗口

enter image description here

正如你在图片上看到的那样,有许多标签可以记住女巫标签对应于女巫部分的代码。 MiniBuffExplorer没有太多帮助。

所以我的问题是你如何在VIM中使用大型项目​​来优化其功能或代码部分。有干净的方法吗? 有没有办法对缓冲区或标签进行分组,如:

Migrations
Seeds
Admin Controllers
Admin Views
Config

4 个答案:

答案 0 :(得分:6)

我不认为这些工具有问题。你使用它们的方式更多。

  1. 标签的设计根本不是作为文件代理,就像在其他编辑器中一样。选项卡是工作区,允许您按照自己喜欢的方式组织窗口。他们是您

    的最佳候选人
    Migrations
    Seeds
    ...
    

    场景。

    以下是创建“迁移”标签的一种可能方法:

    :tabnew | lcd path/to/Migration
    

    从那里,您在该标签中创建的所有窗口都将继承Migration工作目录,并且每个:e:sp:vs甚至:vim都会继承将从该工作目录开始。

    此外,这将使NERDTree和netrw默认显示本地工作目录的内容。

    如果您想更改标签的名称,请参阅:help seeting-tabline:help setting-guitablabel

  2. 您应该使用CtrlP的路径模式在整个路径上进行匹配而不是文件名:

    fbruse
    

    会匹配:

    foo/bar/user
    

    但不是:

    baz/vroom/user
    

    使用上面的选项卡设置,CtrlP的建议应该限制在Migration目录中,使其更快。

    CtrlP并不完美:在大型项目中它可能很慢,所以请务必阅读整个文档。

  3. 打开缓冲区的“永远在线”列表可能是一个好主意,当你有少量它们但是,像标签一样,它显然不会扩展根本。当你真正想要切换缓冲区时,显示列表要好得多:更少的屏幕空间和脑细胞浪费!

  4. 但请注意,虽然可以定义窗口局部参数列表,但AFAIK无法定义窗口本地缓冲区列表。由于参数列表总是泄漏到缓冲区列表中并且缓冲区列表是全局的,因此缓冲区命令将始终处理相同数量的缓冲区,无论您使用哪个选项卡。因此限制了选项卡的一般用途。

    < / LI>
  5. 文件不是处理大型项目的非常好的比喻:当你的程序由函数,类组成时,你必须在头脑中保留一个复杂的符号 - &gt;文件图。数组,变量......不是文件。

    使用代码(:help tags)是一种非常方便的方式来跳转项目:

    :tag foo
    :tag bar<Tab>
    :ptag /baz<Tab>
    

    CtrlP的:CtrlPTags让它变得非常有趣。

  6. FWIW,标签跳转是我最喜欢的导航技术,我通常不使用标签或窗口。

答案 1 :(得分:2)

您可能需要查看Vim-CtrlSpace,它非常适合处理大型项目。此插件可帮助您处理选项卡,缓冲区,会话等。

您可以查看YouTube上的new demo video

答案 2 :(得分:0)

  

我正在使用gVim for Windows,像YouCompleteMe这样的插件不是   选项。

这句话是错误的。在此特定主题上结帐 my other answer

祝你好运。

答案 3 :(得分:-1)

Vim 不是IDE ;在我看来,你正在推动Vim中有意义(同时开放)的极限。您可以轻松设置简单的集成,允许您从IDE在Vim中打开文件。

我建议你使用最好的工具:用于管理和浏览大型项目的IDE,以及Vim的卓越文本编辑功能!