在一个大中型项目的工作中,我经常会在屏幕上出现很多裂片,并打开几个选项卡,每个选项卡中有5-6个片段。通常,对于不同的目录和逻辑工作区,我使用不同的选项卡将功能A上的工作与特性B或bug C和我的笔记上的工作分开。

当你从NERDTree、Fugitive、Gundo和许多其他喜欢附加的插件中获得更多的分叉时,管理这种疯狂就成了一个问题。在这样的辅助分割打开和关闭后,整个设置在高度和宽度上有一个失真的变化。我的意思是,有些窗口变小了,有些比最初大了(而且我必须与CTRL+W >、CTRL+W <和朋友一起手动调整它们的高度和宽度。
通常情况下,用鼠标调整每个分割的大小会更快,但它甚至不接近Vim的方式。
有时我甚至想交换一些分裂或继续分裂到右边。CTRL+W HJKL并不总是帮上忙,因为他们踢得太远了,又扭曲了尺寸。旋转CTRL+W r只适用于简单的情况。
如何管理大量的缓冲区、分区和选项卡?
编辑:我看到有人投票赞成结束。这个问题对你来说可能太笼统了,所以有一个更具体的问题:什么是处理大量缓冲区和拆分的好工作流?(其中一个答案是,在需要更多空间时,促进拆分以分隔制表符)
发布于 2013-08-16 19:28:13
只有当我真的需要将两个文件并排在一起时,我才会使用splits (因为其中一个文件通常被用作引用,例如HTML )。否则,我只使用加载在单个窗口中的常规缓冲区。我也不使用书呆子树或任何会占用太多空间的东西。
我尽量避免在文件之间导航:标记是一个更好的方法。
我的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个缓冲区中的一个,我没有NERDTree、没有选项卡、没有MiniBufExplorer、没有TagList…。由于切换到另一个缓冲区至少需要几个按键,所以我认为没有任何合理的理由对我的工作区进行切片和切分。
因为我不把自己放在一个角落与花哨的过于复杂的漩涡,我不必浪费我宝贵的时间寻找解决办法,我可以安全地嘲笑最新的一批图像宏。等等,我是说“工作”。
发布于 2013-08-16 19:39:11
分裂,或窗户,通常被称为,是脆弱的。
因此,我建议不要以Vim中的windows为中心的工作流。
我的建议是:将当前选项卡页中的窗口数量保持较小。以集中的方式使用windows,并且只用于某些用途(查看文件的不同部分、不同的文件、头/实现文件、.)。工作空间使用选项卡页。熟悉许多其他导航缓冲器的方法:缓冲区列表、:find和:edit系列、模糊查找插件、文件探查器等。
发布于 2013-08-16 18:27:42
尝试ctrl-w <N> >立即将大小更改为N。以防你还没那么做。
我自己更喜欢把东西放在标签上。和ctrl-w移位-t移动一个分割到一个单独的标签。
https://stackoverflow.com/questions/18279772
复制相似问题