我有大量项目,包含多个级别的文件夹。某些文件的名称相同,具体取决于文件夹名称,其功能各不相同。例如
/admin/action1.php
/action1.php
第一个将引用管理任务,第二个将由用户访问。 Vim很快就被标签和缓冲区弄得乱七八糟,而且很难移动。 我正在使用的插件是: NERDTree CtrlP MiniBuffExplorer
我正在使用gVim for Windows,像YouCompleteMe这样的插件不是一种选择。
正如你在图片上看到的那样,有许多标签可以记住女巫标签对应于女巫部分的代码。 MiniBuffExplorer没有太多帮助。
所以我的问题是你如何在VIM中使用大型项目来优化其功能或代码部分。有干净的方法吗? 有没有办法对缓冲区或标签进行分组,如:
Migrations
Seeds
Admin Controllers
Admin Views
Config
答案 0 :(得分:6)
我不认为这些工具有问题。你使用它们的方式更多。
标签的设计根本不是作为文件代理,就像在其他编辑器中一样。选项卡是工作区,允许您按照自己喜欢的方式组织窗口。他们是您
的最佳候选人Migrations
Seeds
...
场景。
以下是创建“迁移”标签的一种可能方法:
:tabnew | lcd path/to/Migration
从那里,您在该标签中创建的所有窗口都将继承Migration
工作目录,并且每个:e
,:sp
,:vs
甚至:vim
都会继承将从该工作目录开始。
此外,这将使NERDTree和netrw默认显示本地工作目录的内容。
如果您想更改标签的名称,请参阅:help seeting-tabline
和:help setting-guitablabel
。
您应该使用CtrlP的路径模式在整个路径上进行匹配而不是文件名:
fbruse
会匹配:
foo/bar/user
但不是:
baz/vroom/user
使用上面的选项卡设置,CtrlP的建议应该限制在Migration
目录中,使其更快。
CtrlP并不完美:在大型项目中它可能很慢,所以请务必阅读整个文档。
打开缓冲区的“永远在线”列表可能是一个好主意,当你有少量它们但是,像标签一样,它显然不会扩展根本。当你真正想要切换缓冲区时,显示列表要好得多:更少的屏幕空间和脑细胞浪费!
但请注意,虽然可以定义窗口局部参数列表,但AFAIK无法定义窗口本地缓冲区列表。由于参数列表总是泄漏到缓冲区列表中并且缓冲区列表是全局的,因此缓冲区命令将始终处理相同数量的缓冲区,无论您使用哪个选项卡。因此限制了选项卡的一般用途。
< / LI>文件不是处理大型项目的非常好的比喻:当你的程序由函数,类组成时,你必须在头脑中保留一个复杂的符号 - &gt;文件图。数组,变量......不是文件。
使用代码(:help tags
)是一种非常方便的方式来跳转项目:
:tag foo
:tag bar<Tab>
:ptag /baz<Tab>
CtrlP的:CtrlPTags
让它变得非常有趣。
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的卓越文本编辑功能!