Vim:如何使缓冲区在窗口大小调整时自动均匀分割空间

Rde*_*ond 5 vim

现在,当我在 vim 中增大窗口大小(从终端运行)时,一个缓冲区会获得所有额外空间,而另一个缓冲区仍会被压缩。有没有办法自动调整缓冲区大小,以便每个缓冲区获得窗口大小的一半(或 N 个缓冲区的 1/N 空间)。

小智 5

好问题!我以前从来没有想过这个问题,但现在想起来,同样的事情也一直困扰着我!

您可以使用组合键ctrl-w=将所有分割调整为适当的大小。从:help CTRL-W_=

                        *CTRL-W_=*
CTRL-W =    Make all windows (almost) equally high and wide, but use
        'winheight' and 'winwidth' for the current window.
        Windows with 'winfixheight' set keep their height and windows
        with 'winfixwidth' set keep their width.
Run Code Online (Sandbox Code Playgroud)

然而,每次调整屏幕大小时都必须这样做,这很烦人。您可以使用自动命令自动执行此操作:

autocmd WinResize * wincmd =
Run Code Online (Sandbox Code Playgroud)

这样每次你调整 vim 的大小时,它都会自动为你按下ctrl-w=,这样你就不用担心了。

我已经确认这适用于终端和 GUI 版本。

这是一个很棒的设置。事实上,我最终将其添加到我的个人设置中,所以感谢您提出这个问题!