当你从NERDTree,Fugitive,Gundo和其他许多喜欢进行额外拆分的插件中进行大量额外拆分时,管理这种疯狂会成为一个问题.在这种辅助分离打开和关闭之后,整个设置的高度和宽度变化都会发生变化.我的意思是,有些窗户变得很小,有些窗户变得比最初大(我手动调整它们的高度和宽度,用CTRL W>和CTRL W<和朋友. 通常使用鼠标调整每个分割的速度更快,但它甚至不接近Vim方式. 有时我甚至想要交换一些分裂或向右移动. CTRL W HJKL并不总是有帮助,因为他们踢得太远并且再次扭曲尺寸.旋转CTRL W r仅适用于简单情况. 你如何管理大量的缓冲区,分割和标签? 编辑:我看到有投票结束.这个问题对你来说似乎太笼统了,所以有一个更具体的问题:使用大量缓冲区和拆分的好工作流程是什么? (其中一个答案是在需要更多空间时促进拆分以分离标签)
我的vim几乎总是一个大的灰色矩形.
编辑
处理多个“事物”一直是一个难以处理的问题.当我们试图在同一时间和同一空间中处理许多“事物”时更是如此.这是一个很难的问题,因为我们无法同时处理多个事情:我们的思想并未针对此进行优化.这就是为什么记忆游戏并不像它看起来那么容易,为什么我们在Powerpoint幻灯片显示完整的列表和图表以及为什么人们用一只手机和另一只手中的驱动轮死亡之后就不记得了.
因为我们不能同时处理4个缓冲区,所以应该保留拆分窗口,以便在一个窗口中完成实际工作而另一个窗口用于参考(文档,做CSS时的HTML文档…)或者反馈(掉毛,计算结果……).在这样的设置中,切换到另一个窗口的身体的唯一部分是我们的眼睛:我们不需要键盘快捷键或鼠标.
但我们喜欢让生活变得更加复杂.我们喜欢把自己想象成多任务的神,所以我们分开窗户,我们把窗户放在窗户的窗户里,我们必须找到脆弱的黑客来管理所有混乱.由于各种原因,键盘快捷键不是有效的解决方案,我们讨厌鼠标,对吧?
无论如何,拆分窗口的基本问题与常规缓冲区和标签相同:为了处理缓冲区#3,我们必须切换到缓冲区#3.缓冲区#3是隐藏的,显示在右上方窗口还是另一个选项卡中是无关紧要的,我们必须按几个键才能到达它.当目标缓冲区被隐藏时,我们执行:b3来显示它.当它位于右上方窗口时,我们使用< C-w> …映射,默认或自定义.当它在另一个标签中时,我们倾向于执行gt直到我们找到它(或者:sb3,它更聪明).无论我们选择哪种空间设置,我们仍然必须切换到目标.
仅涉及您正在使用的布局类型的问题是您必须在二维中思考和移动.从左下方窗口跳到右上方窗口并不是真正线性的(除非你使用< C-w> w)并且需要更多的思考和打字而不是简单地看一下那个窗口.
另一个问题是工作空间是如何划分的,以及它对您可以处理的缓冲区数量和窗口大小的影响.
总而言之,我认为处理多个缓冲区的最佳方法是单独保留窗口和标签,找到更精简的工作流程.
常规缓冲区也很棘手:你可以拥有1,2,5,7列表的方式很奇怪.但我认为缓冲切换(与窗口切换相反)从根本上说更直观,更可靠.
:bn "show next buffer in the list :bp "show prevIoUs buffer in the list :b3 "show buffer #3 :bf "show first buffer in the list :bl "show last buffer in the list :b <tab> "select buffer from a menu :b fo<Tab> "select buffer from a menu :b foo "show buffer named foo
以下映射使切换缓冲区变得轻而易举,但您也可以尝试使用许多缓冲区切换插件.
nnoremap gb :buffers<CR>:b<Space>
不过,我首选的导航方法不是基于缓冲的.如今,我发现实际上忘记项目的文件结构并使用标签要容易得多.当我浏览时,我会移动到特定的类或特定的方法或特定的数组或其他任何东西.我的工作区只有一个窗口,显示15个或20个缓冲区中的1个,我没有NERDTree,没有标签,没有MiniBufExplorer,没有TagList …因为切换到另一个缓冲区需要至少几个按键,无论如何我没有看到任何有效的原因用于切片和切割我的工作区.
因为我没有把自己置于一个花哨过于复杂的gyzmos的角落里,所以我不必浪费宝贵的时间寻找解决方法来解决问题,我可以放心地嘲笑最新一批的图像宏.等等,我的意思是“工作”.