如果我在 VIM 会话中打开了 x 个或多个窗口,并且我想快速隐藏除活动窗口之外的所有窗口,然后将窗口返回到我设置的布局,我该怎么做?
答案1
我使用 CTRL-W _ 水平“推”其他窗口,使当前窗口扩展到最大的可用区域。使用 CTRL-W |垂直方向做同样的事情。我确信可能有一种方法可以同时完成这两件事,但我还没有注意到或寻找它。查看 :help CTRL-W
要恢复它们,请执行 CTRL-W =。但需要注意的是,它们不会恢复到原始配置。 CTRL-W = 实际上重新计算屏幕中所有窗口的最佳匹配。
答案2
在 Vim 7 及更高版本中,您可以为此使用“选项卡页”(即“GUI 样式”选项卡)。您可以使用:tab
命令与任一:split
或者:sbuffer
:
:tab split
:tab sp " shorter version
:tab sbuffer
:tab sb " shorter version
在没有附加参数的情况下使用时,两者split
几乎sbuffer
执行相同的操作(分割当前缓冲区)。如果您预计要split
加载一些(可能尚未加载)路径名(split path/to/some/file
;尽管您可以只使用:tabe
相反,因为这是在打开新选项卡的上下文中);sbuffer
可以更轻松地切换到现有缓冲区(sb {bufnum}
或sb {bufname}
)。
打开新选项卡后,您可以使用gT
和gt
在结果选项卡之间切换(如果您使用的是 GUI 版本的 Vim,则可以使用 GUI 控件)。当您完成单窗口选项卡后,只需:q
关闭窗口(以及选项卡)并返回到原始选项卡(及其原始窗口布局),或使用:tabclose
( :tabc
),或切换回原始选项卡并使用:tabonly
( :tabo
)。
答案3
据我所知,没有办法简单地在两个不同的窗口布局之间切换,但您可以通过发出命令:only
(或:on
)来隐藏所有其他窗口。请参阅该命令的 Vim 帮助。