如何最大化拆分窗口?


110

:help在Vim中调用时,我得到了带有拆分窗口的帮助手册页。我想最大化帮助手册窗口并关闭另一个窗口。

我怎样才能做到这一点?Vim命令执行此操作是什么?

Answers:


88

使用:help [topic],您可以打开自己感兴趣的主题。
Ctrl-Wo将最小化其他窗口(仅打开/最大化帮助窗口)。
(Ctrl-Wo表示按住Ctrl的同时按W,然后按o)


39
或,:only可以完成工作。
2011年

14
在执行CTRL + W o后,如何从编辑文件返回帮助手册?
2011年

3
@guru: ,C-w,,^ 等(见的帮助,了解详细信息)。有趣的是,我的(IMHO)正确答案尚未给出……:buf OtherFile.txt:sbuf Otherfile.txtwincmdswitchbuf
sehe 2011年

2
@ldigas:这是一个(令人惊讶的)观点。除非您引用信誉良好的消息来源,否则我将把它作为您的个人喜好。我通常不使用它们,但是最近我发现我将它们用于这样的设计(暂时最大化侧缓冲;做一些强大的工作,例如在单个vim会话中具有多个不相交的并排diff)。标签也是的可用性奇迹gvim --remote。我一直在使用,se guioptions=agim因为我更喜欢类似控制台的选项卡渲染。
sehe 2011年

23
这将关闭其他窗口,并且如果您有一个或多个进行了更改但未保存的窗口,则此方法将不起作用-我还认为问题在于最大化该窗口在该状态下的短时间工作,然后再进行操作返回到先前的状态-关闭所有窗口,则您将不得不使用会话文件或手动打开所有其他窗口以返回
serup

133

您可以雇用Ctrl+WT这是一个大写字母T)将任何打开的窗口移至其自己的选项卡。

正如其他人所提到的Ctrl+W_/,Ctrl+W|以便在当前选项卡/窗口布局中最大化(同时注意其他各种窗口的最小高度/宽度设置)。

Ctrl+W=将最小高度/宽度设置考虑在内,将所有窗口调整为相等大小)

编辑至评论

  1. 启动vim(例如gvim /tmp/test.cpp
  2. 调用帮助:help various-motions-打开一个拆分窗口
  3. 将帮助移到最大化的单独选项卡中: C-wT
  4. 喜欢阅读精美的手册 :)
  5. 将帮助移回原始选项卡:

    mAZZ<C-w>S`A
    
    • mA:设置全局标记A
    • ZZ:关闭帮助缓冲区/选项卡
    • C-wS:分割原始视窗
    • `A:跳至已保存的标记A

您可以避免在普通(非帮助)缓冲区中使用标记。让我知道你是否有兴趣。


4
用CTRL + WT获得选项卡后,如何返回原始的分割窗口?
2011年

2
@guru:只需切换标签一如既往(使用Ctrl-PgUpCtrl-PgDown:tabnext:tabprev)。要关闭新的(如帮助)选项卡,使用ZZCtrl-W, C:q:clo:tabclose或其他任何方式你平时关闭窗口/标签
sehe

1
不,那不是问题。假设您有两个选项卡,现在不希望使用任何选项卡,则希望将两个缓冲区作为分割的窗口。有没有一个命令可以做到这一点?
2011年

用一般程序编辑问题。(我想补充一下,您的评论语气可能会不太友好。用书面语言,"No, that was not the question"可能听起来是一种谴责。我相信您的意思不是很不好
sehe 2011年

@guru:答案已更新。这比预期的要难一点,因为帮助缓冲区是特殊的(并且您不能:sbuf像我通常希望的那样使用)。希望对您
有所

53

您可以使用Ctrl+W_(下划线)将窗口扩展到最大尺寸。扩展窗口的最终大小将受到winminheight选项值的限制。关闭帮助窗口时,以前的窗口将恢复为以前的大小。


19
Ctrl+W o 关闭其他窗口,它们消失了。这就是为什么我使用Ctrl+W _
2011年

2
如何获得带有编辑文件和帮助手册的两个原始窗口?
悄悄地

3
Ctrl+W =命令将调整窗口的大小,以使它们的大小都大致相同。
格雷格·休吉尔

14
对于垂直分割,您需要使用Ctrl+W |
Achal Dave

2
对于在此线程上发生的任何迷路灵魂……返回拆分视图,请使用ctrl+w = // //使所有窗口大小相同
duggi

19

我更喜欢使用标签。用

:tabedit %

打开新选项卡中最大化的文件,完成后返回旧设置,所有窗口均使用

:tabclose

我发现这是理想的解决方案,因为它可以与:cwTagbar插件一起使用。摘自:vim.wikia


13

我喜欢用“ M”最大化,用“ m”最小化。

它看起来不会很好,因为它会缩小同一缓冲区中的所有其他打开的窗口,但是我发现在处理选项卡时它会更有用。因此,例如,不必为该文件打开新的选项卡,而必须在完成处理或将其最小化之后将其关闭。

nnoremap <C-W>M <C-W>\| <C-W>_
nnoremap <C-W>m <C-W>=

nnoremap的原因是我不关心递归映射,而只是map也应该起作用。


1
如果使用nnoremap <C-W>M <C-W>\|<C-W>_(后面没有空格|),则每个最大值上的光标不会移动1。
rsanden

1
我喜欢使用反斜杠(nnoremap <C-W>\ <C-W>\|<C-W>_)。感觉自然与默认绑定|_=
rsanden

6

您可以通过使用来获得完整尺寸的帮助窗口,而无需关闭/调整任何其他窗口的大小

tab help {topic}

这将在新选项卡中打开帮助窗口,其他窗口将保持不变(已调整大小,以便可以显示选项行,但这只是上面的另一行)。您可以像往常一样关闭帮助:至少:bw<CR><C-w>c可以为我工作,也关闭新标签页。




2

要获取帮助,然后关闭另一个窗口,请执行以下操作::helpCTRL-WCTRL-W:close。然后,您将获得帮助。


1

在您的.vimrc中,只需放置

nmap - :res<CR>:vertical res<CR>$

如果要最大化当前窗口,只需在命令模式下按-。要恢复多个窗口的最后状态时,按=


2
很好,但=不能恢复“最后状态”。
majkinetor 2013年

1

不知怎的,ZoomWin插件对我根本不起作用,我现在看到还有其他插件,但是我已经写了这个,并给了我想要的确切效果 (下面有一个小怪癖)

function! ToggleZoom(zoom)
  if exists("t:restore_zoom") && (a:zoom == v:true || t:restore_zoom.win != winnr())
      exec t:restore_zoom.cmd
      unlet t:restore_zoom
  elseif a:zoom
      let t:restore_zoom = { 'win': winnr(), 'cmd': winrestcmd() }
      exec "normal \<C-W>\|\<C-W>_"
  endif
endfunction

augroup restorezoom
    au WinEnter * silent! :call ToggleZoom(v:false)
augroup END
nnoremap <silent> <Leader>+ :call ToggleZoom(v:true)<CR>

使用映射键(在我的情况下为Lead和+)可在最大化/先前布局之间切换。如果在同一选项卡中更改为另一个拆分,则最大化将关闭。

如果更改选项卡,则拆分将保持最大化,尽管以某种方式它不会再覆盖完整的全宽,而最小化宽度的窗口将获得约4列或其他内容。无论如何,即使有一点古怪,它对我来说仍然可以接受。

编辑:现在它以某种方式可以正常工作,之前一定已经搞砸了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.