好的,首先,这是不我正在寻找的答案:
autocmd VimResized * :wincmd =
让我解释一下:假设我有2个垂直分割窗口,一个尺寸为30%,另一个尺寸为70%。当我调整窗口大小时,我希望该百分比保持不变。如果没有此命令,右侧的分割会慢慢折叠,以至于您最终无法在窗口中看到任何内容。使用上面的命令,一旦开始调整窗口大小,窗口大小立即变为50%/ 50%。
我使用了大量的分割(垂直和水平),我不希望上面的命令只是让一切都相等,但同时我确实希望它们调整大小,只是顺从窗口......我希望在调整窗口大小时窗口中所有拆分的百分比高度/宽度保持不变。想法?
答案 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
,使用这些值来调整窗口大小。
这听起来不像是一项微不足道的任务。
或者甚至是个好主意。