7

好的,首先,这不是我要寻找的答案:

autocmd VimResized * :wincmd =

让我解释一下:假设我有 2 个垂直分割的窗口,一个大小为 30%,一个大小为 70%。当我调整窗口大小时,我希望该百分比保持不变。如果没有这个命令,右边的分割会慢慢塌陷,最终你在窗口中什么也看不到。使用上面的命令,一旦你开始调整窗口大小,窗口大小立即变为 50%/50%。

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

4

3 回答 3

3

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

于 2013-03-04T17:04:03.963 回答
3

如果你问的是“vim-官方”的方式来做到这一点,答案是NO。(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根据你的逻辑调整所有窗口的大小。

于 2013-02-01T15:51:55.720 回答
2

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

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

或者甚至喜欢一个好主意。

于 2013-02-01T23:12:21.773 回答