Vim(窗口调整大小):如何轻松地使一列的窗口高度相等?

Vim(窗口调整大小):如何轻松地使一列的窗口高度相等?,vim,neovim,Vim,Neovim,我有一个垂直拆分窗口,窗口在每列中进一步水平拆分。我想使一列中的窗口的高度相同,但不想更改另一列中的高度(例如,另一列中的一个窗口被设置为可能的最高值,如使用CTRL-W_,我不想更改)。实现这一点最简单的方法是什么?我能想到的最简单的方法是使用鼠标 :set mouse+=a 然后使用鼠标拖动并调整屏幕大小,以满足相应的要求 如果没有鼠标,这是可能的,但需要额外键入。转到专栏 要调整大小的。 然后:resize#,其中#根据(设置行-2)/2的输出计算得出,其中2表示cmdheight,1

我有一个垂直拆分窗口,窗口在每列中进一步水平拆分。我想使一列中的窗口的高度相同,但不想更改另一列中的高度(例如,另一列中的一个窗口被设置为可能的最高值,如使用CTRL-W_,我不想更改)。实现这一点最简单的方法是什么?

我能想到的最简单的方法是使用鼠标

:set mouse+=a
然后使用鼠标拖动并调整屏幕大小,以满足相应的要求


如果没有鼠标,这是可能的,但需要额外键入。转到专栏 要调整大小的。 然后
:resize#
,其中#根据
(设置行-2)/2的输出计算得出,其中2表示
cmdheight
,1表示
statusline
。“cmdheights and statusline”的编号需要相应调整。这很麻烦


如果在vim中禁用鼠标,则最好使用@Ondrej的技巧。如果
equalalways
处于启用状态(默认情况下),则关闭拆分会将剩余拆分的大小调整为相等。所以只需创建一个新的拆分,然后关闭它

:new | q
将其映射到一个键(例如Leader+eq)将如下所示:

nnoremap <Leader>eq :new \| :q<cr>
nnoremap eq:new\|:q

实际上我不想使用鼠标,但谢谢你的评论!不幸的是,
CTRL-W
后跟
=
使所有窗口(不仅仅是感兴趣的列中的窗口)都同样高和宽,无论从哪个窗口启动。有关详细信息,请参见
:帮助窗口调整大小
,因为我的标题中有关键字。我想我的问题需要(希望)一个简单的Vimscript函数。由于我不熟悉这门语言,我希望有人能友好地回答,或者想知道是否有人已经发明了轮子。请看@Ondrej Simek的答案。再次感谢你的帮助。哦,哇,太好了。对于那些想要映射此序列的人,不要忘记在
'\'
前面添加一个
'\'
。从
:help:bar
-
“|”可用于分隔命令,因此您可以在一行中给出多个命令。如果要在参数中使用“|”,请在其前面加“\”。
是的,另一个选项是将其作为两个命令执行(例如,
nnoremap eq:new:q
)。@OndrejSimek,这很好。可能是您可以更新,如果
equalalways
为off@dlmeetei当然,我已经合并了这两个评论。