如何最大化分割窗口?

时间:2011-10-20 03:30:40

标签: vim split editor

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

我该怎么做?执行此操作的Vim命令是什么?

11 个答案:

答案 0 :(得分:110)

你可以使用 Ctrl + W T 这是一个大写T )将任何打开的窗口移动到它自己的标签

正如其他人所提到的 Ctrl + W _ / Ctrl + W | 在当前标签中最大化/窗口布局(同时考虑各种其他窗口的最小高度/宽度设置)。

Ctrl + W = 将所有窗口调整为相等的大小,尊重最小高度/宽度设置)

修改发表评论

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

    mAZZ<C-w>S`A
    
    • mA:设置全局标记A
    • ZZ:关闭帮助缓冲区/标签
    • C-w S:拆分原始窗口
    • ` A:跳转到已保存的标记A
  6. 您可以避免在正常(非帮助)缓冲区中使用标记。如果您有兴趣,请告诉我。

答案 1 :(得分:73)

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

答案 2 :(得分:44)

您可以使用 Ctrl + W _ (下划线)将窗口展开到其最大尺寸。扩展窗口的最终大小将受winminheight选项的值约束。当您关闭帮助窗口时,您之前的窗口将恢复到以前的大小。

答案 3 :(得分:13)

我更喜欢使用标签。使用

:tabedit %

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

:tabclose

我发现这是理想的解决方案,因为它与:cw和Tagbar插件一起使用。取自:vim.wikia

答案 4 :(得分:9)

我喜欢使用&#39; M&#39;最大化和&#39; m&#39;最小化。

它不会看起来很棒,因为它会缩小同一缓冲区中所有其他打开的窗口,但我发现它在处理标签时更有用。因此,举例来说,不是为该文件打开一个新标签,而是在您完成该文件或者想要将其最小化后关闭它。

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

nnoremap的原因是我不关心递归映射,但只是map也可以工作。

答案 5 :(得分:6)

您可以使用

获取完整尺寸的帮助窗口,而无需关闭/调整任何其他窗口的大小
tab help {topic}

这将在新选项卡中打开帮助窗口,其他窗口将保持原样(实际调整大小以便显示tabline,但这只是上面的一行)。您可以照常关闭帮助:至少:bw<CR><C-w>c也适用于关闭新标签页。

答案 6 :(得分:5)

安装插件vim-maximizer,然后您可以最大化当前窗口并使用F3恢复

答案 7 :(得分:2)

要获得帮助,请关闭另一个窗口,执行以下操作::help CTRL-W CTRL-W :close。然后你就会得到帮助。

答案 8 :(得分:1)

在你的.vimrc中,只需放置

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

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

答案 9 :(得分:1)

插件 ZoomWin

Charles Campbell

此插件重新映射

  

Ctrl - w o

同时做到:最大化并恢复以前的布局。

可以从两个位置下载此插件

答案 10 :(得分: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列左右的内容。无论如何,即使有一个小怪癖,它对我来说仍然可以接受。

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