如何在VIM中处理大型项目
我有很多文件夹级别的大型项目。有些文件的名称相同,并且根据文件夹名称的不同,它们的功能也不同。比如说如何在VIM中处理大型项目,vim,nerdtree,minibufexplorer,ctrlp,Vim,Nerdtree,Minibufexplorer,Ctrlp,我有很多文件夹级别的大型项目。有些文件的名称相同,并且根据文件夹名称的不同,它们的功能也不同。比如说 /admin/action1.php /action1.php 第一个是指管理任务,第二个是由用户访问的。 Vim很快就被标签和缓冲区弄得乱七八糟,而且很难移动。 我使用的Pluigins是: 书呆子树 CtrlP 迷你浏览器 我正在为Windows使用gVim,像YouCompleteMe这样的插件是不可选择的 NerdTree-太笨拙了,无法在大型项目的文件夹之间来回移动 CtrlP-你
/admin/action1.php
/action1.php
第一个是指管理任务,第二个是由用户访问的。
Vim很快就被标签和缓冲区弄得乱七八糟,而且很难移动。
我使用的Pluigins是:
书呆子树
CtrlP
迷你浏览器
我正在为Windows使用gVim,像YouCompleteMe这样的插件是不可选择的
- NerdTree-太笨拙了,无法在大型项目的文件夹之间来回移动
- CtrlP-你必须通过一直输入姓名来了解你在寻找什么
- MiniBuffExplorer-有大量的文件,占用屏幕上很大的空间,不可能找到任何东西
- Vim会话-打开项目的保存选项卡/窗口
Migrations
Seeds
Admin Controllers
Admin Views
Config
Vim不是IDE;在我看来,您正在突破Vim中有意义(同时打开)的极限。您可以轻松设置简单的集成,允许您从IDE在Vim中打开文件
我建议您在最好的地方使用每一种工具:用于管理和导航大型项目的IDE,以及用于出色文本编辑功能的Vim 在这里,我不认为工具有错。更重要的是你如何使用它们
Migrations
Seeds
...
情景
以下是创建“迁移”选项卡的一种可能方法:
从那里,您在该选项卡中创建的所有窗口将继承迁移
工作目录,并且每个:e
,:sp
,:vs
甚至:vim
都将从该工作目录开始
此外,默认情况下,这将使NERDTree和netrw显示本地工作目录的内容
如果要更改选项卡的名称,请参见:帮助查看选项卡
和:帮助设置吉他标签
fbruse
将匹配:
foo/bar/user
但不是:
baz/vroom/user
通过上面的选项卡设置,CtrlP的建议应该限制在迁移
目录中,从而使迁移速度大大加快
不过,CtrlP并不完美:在大型项目中,它可能会很慢,因此请确保您阅读了整个文档:help标记
)是一种非常方便的项目跳转方式:
:tag foo
:tag bar<Tab>
:ptag /baz<Tab>
:标记foo
:标记栏
:ptag/baz
而CtrlP的:CtrlPTags
几乎让它变得有趣祝你好运。你可能想看看,它非常适合处理大型项目。这个插件帮助你处理标签、缓冲区、会话等等
你可以在YouTube上查看。我知道VIM不是IDE。我可以在VIM中做任何我想做的事情,除了组织我的工作流程,这样我就可以轻松地跳转到我现在需要的文件。可能的副本。。。另请参阅(以及许多其他类似问题)。您是对的,这是一个常见问题。我试图用特定的插件展示我的设置,以及它在我的项目中的外观。希望我可能需要使用不同的插件,配置我已经有不同的插件,或者找到工作流程应该是什么样子的指针。在我看来,重新评估您的工作流程也会让您受益匪浅。除非您正在执行一个非常特定的批量操作,否则您一次需要打开100多个缓冲区的几率可能非常低。我习惯于使用
:bd
关闭打开的缓冲区,而不是:q
,因为如果我现在处理完文件,我希望它消失。我使用Unite.vim打开与CtrlP行为非常相似的文件。模糊文件匹配使得打开正确的文件非常容易。再加上一些类似grep的工具的自由使用,你可以找到哪个文件有你想要的东西,你可以很快找到正确的文件。这正是我使用标签的方式。我使用的是vim会话插件,更改的选项卡名称没有保存。当我恢复会话时,它就消失了。我喜欢你关于CtrlPTags的想法,我将尝试使用纯文件作为参考来实现它,NerdTree有一个书签功能,所以你可以
:tag foo
:tag bar<Tab>
:ptag /baz<Tab>