如何按比例调整Vim中的分割窗口大小?

时间:2013-02-01 15:33:58

标签: vim macvim

好的,首先,这是我正在寻找的答案:

autocmd VimResized * :wincmd =

让我解释一下:假设我有2个垂直分割窗口,一个尺寸为30%,另一个尺寸为70%。当我调整窗口大小时,我希望该百分比保持不变。如果没有此命令,右侧的分割会慢慢折叠,以至于您最终无法在窗口中看到任何内容。使用上面的命令,一旦开始调整窗口大小,窗口大小立即变为50%/ 50%。

我使用了大量的分割(垂直和水平),我不希望上面的命令只是让一切都相等,但同时我确实希望它们调整大小,只是顺从窗口......我希望在调整窗口大小时窗口中所有拆分的百分比高度/宽度保持不变。想法?

3 个答案:

答案 0 :(得分:3)

如果您要求采用“vim - 官方”方式,请回答。 (Vim 7.3)

证明:

打开vim,输入:h todo<Enter>,然后输入/proportionally[Enter],您会看到:

-   When resizing the whole Vim window, the windows inside should be resized
    proportionally (Webb).

所以这是在vim的待办事项列表中。在此窗口中输入gg,您可以看到前导减去"-"表示Priority classification:

-   unclassified

如果你想这样做,你可以自己编写一个函数,在VimResized事件中,根据你的逻辑调整所有窗口的大小。

答案 1 :(得分:3)

我试图在我的ProportionalResize plugin中实现这一点,基本上遵循romainl的答案中概述的方法。您可以将调整大小命令包装在:ProportionalResize包装器中;该插件还挂钩到各种事件中,以便在调整Vim窗口大小时允许自动适应,例如用鼠标。

答案 2 :(得分:2)

您可以创建一个记录窗口大小的函数,并将它们绑定到一堆事件,如WinEnter / WinLeave,另一个绑定到VimResized,使用这些值来调整窗口大小。

这听起来不像是一项微不足道的任务。

或者甚至是个好主意。