使vim命令在初始窗口上工作,如NERDTree,MiniBufExplorer和CtrlP

Mat*_*ell 0 vim

我在推出vim时打开NERDTree和MiniBufExplorer,所以我有三个窗口.每当我使用上述插件时,文件/缓冲区都会显示在正确的窗口中,这是最初的窗口.但是每当我使用命令这样:e ~/.vimrc的命令工作在包含光标的窗口时.这意味着我必须始终记住将光标移动到用于编辑的窗口.我想知道是否有办法让命令在该窗口上工作,无论光标在哪里,或者文件缓冲区是否会自动出现在该窗口中?

我正在寻找一种方法让光标移动到右侧窗口时:(或者我可以使用的其他一些键)被按下,但是我无法找到方法,因为无法识别窗口(或者是否存在?).

Pet*_*ker 7

文件,缓冲区和拆分哦我的!

您要求Vim更改每个文件和缓冲区命令的更改方式,以适应您的插件选择和工作流程.你在这里反对vim方式,它将阻碍你使用Vim的分裂.

首先要认识到Vim没有Project抽屉的概念,只有分裂/窗口.这意味着NerdTree和其他插件会不遗余力地模拟Project Drawer行为并最终失败.

让我们看看使用NerdTree和MiniBufExplorer作为始终打开的窗口的问题:

NerdTree:

  • 浪费的空间.您多久查看一次文件结构?10%的时间?减?
  • 拆分 - 打开一些拆分现在切换到最右边的拆分通道<c-w>b.在此窗口中通过NerdTree打开文件.你有没有用到<c-w>t最左上方的窗口?使用如此多的窗口命令打开文件感觉非常细微差别
  • 重新分配时,NerdTree不能很好地发挥作用.创建一些拆分然后做<c-w>J<c-w>H.看看它如何搞砸你的布局

MiniBufExplorer

  • 缩放 - MiniBufExplorer只是不随缓冲区数量而扩展.我已经打开了一百多个缓冲区而没有问题.我无法想象MiniBufExplorer会造成空间浪费
  • 通过一直看到所有打开的缓冲区几乎没有什么可获得的.切换到不同的缓冲区时,只需要查看它们
  • 切换缓冲区 - 您可以通过映射:bnext:bprev命令轻松切换缓冲区
  • 有关切换缓冲区的更多信息 - 如果您想要切换缓冲区,那么转移到MiniBufExplorer窗口会很繁琐且烦人
  • 重新排列窗口 - 与NerdTree相同
  • MiniBufExplorer类似于在vim中为每个文件使用Vim的选项卡,请参阅:有效使用缓冲区

Vim Way

正如Vimcast帖子中所述,油和醋 - 分割窗口和项目抽屉,Vim更喜欢在需要时打开文件浏览器,然后在不需要时切换它.您也可以以这种方式使用NerdTree,只需忘记文件浏览器位.还有其他方法可以在vim中打开文件:

  • 使用和<tab>,等命令使用文件完成:e:sp
  • 使用<c-d>而不是<tab>获取完成列表
  • :e:sp命令采取全局.例如:e *.c:e foo/**/bar.c
  • :find和设置'path''suffix'选项
  • Ctags或cscope跳转到标签
  • gf 将转到光标下的文件
  • 查看模糊查找器,如CtrlPCommand-T
  • 通过Projectile创建项目特定的导航(Rails就是一个很好的例子)

有很多方法可以在Vim中切换缓冲区:

  • :b:sb获取缓冲区数字以及将完成和glob的名称
  • :ls看你的缓冲区的列表,然后使用:b直接切换
  • <c-6> 将去往前一个缓冲区
  • 地图:bnext:bprev例子[b]bUnimpaired.vim映射
  • set hidden使切换缓冲区更容易.不要担心,如果您在退出之前有未写入的缓冲区,vim会通知您
  • 再次研究模糊查找器插件,如CtrlP和Command-T来切换缓冲区

Vim很开心.确保尽可能有效地使用拆分.有许多拆分命令,请参阅:h opening-window.更好的是阅读整个:h window帮助文件,那里有很多宝藏.