【问题标题】:How can I maximize a split window?如何最大化拆分窗口?
【发布时间】:2011-12-11 11:06:15
【问题描述】:

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

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

【问题讨论】:

  • 对于使用 NeoVim 的人,请尝试:vim.cmd("wincmd ..."),其中wincmd 相当于 Vim 中的 <C-W>,并将 ... 替换为 _,|,h, 。 ..等链接到下面的答案:stackoverflow.com/a/29923368/5290519

标签: vim split editor


【解决方案1】:

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

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

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

您可以避免对普通(非帮助)缓冲区使用标记。如果您有兴趣,请告诉我。

【讨论】:

  • 使用 CTRL+W T 获得选项卡后,我如何才能回到原来的分割窗口?
  • @guru:只需像往常一样切换标签(使用Ctrl-PgUpCtrl-PgDown:tabnext:tabprev)。要关闭新的(例如帮助)选项卡,请使用ZZCtrl-W, C:q:clo:tabclose 或您通常关闭窗口/选项卡的任何其他方式
  • 不,这不是问题所在。假设您有两个选项卡,现在您不需要选项卡,您希望这两个缓冲区作为拆分窗口。有没有一个命令可以做到这一点?
  • 用一般程序编辑问题。 (我想补充一点,您的 cmets 的语气可能会显得相当不友好。在书面语言中,"No, that was not the question" 听起来可能是一种谴责。我相信您并没有恶意
  • @guru:答案已更新。这比预期的要复杂一些,因为帮助缓冲区是 special (你不能像我通常喜欢的那样使用:sbuf)。希望这会有所帮助
【解决方案2】:

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

【讨论】:

  • 或 , :only 将完成这项工作。
  • 在编辑文件中按CTRL+W o 后如何返回帮助手册?
  • @guru: C-w^:buf OtherFile.txt:sbuf Otherfile.txt 等(有关详细信息,请参阅wincmdswitchbuf 的帮助)。有趣的是,我的(恕我直言)正确答案还没有给出......
  • @ldigas:这是一个(令人惊讶的)意见。除非您引用有信誉的消息来源,否则我会将其视为您的个人喜好,真的。我通常不使用它们,但我最近发现我正在将它们用于这样的事情(暂时最大化一个侧缓冲区;做一些强大的事情,比如在一个 vim 会话中拥有多个不相交的并排差异)。标签也是gvim --remote 的可用性奇迹。我一直在使用se guioptions=agim,因为我更喜欢类似控制台的选项卡渲染。
  • 这将关闭其他窗口,如果您有一个或多个窗口进行了更改但未保存,那么这将不起作用 - 我认为问题是关于最大化窗口以短暂工作处于该状态的时间,然后返回之前的状态 - 通过关闭所有窗口,您将不得不使用会话文件或手动打开所有其他窗口才能返回
【解决方案3】:

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

【讨论】:

  • Ctrl+W o 关闭其他窗口,所以它们就消失了。这就是我使用Ctrl+W _的原因。
  • 如何通过编辑文件和帮助手册找回原来的两个分割窗口?
  • Ctrl+W = 命令调整窗口大小,使它们的大小大致相同。
  • 对于垂直拆分,您需要使用Ctrl+W |
  • 对于在这个线程上发生的任何迷失的灵魂......要返回拆分视图,请使用ctrl+w = //这会使所有窗口大小相同
【解决方案4】:

我更喜欢为此使用标签。使用

:tabedit %

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

:tabclose

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

【讨论】:

  • 感谢这个简单易懂的建议!完成后,您也可以 :q 关闭标签页,然后返回到之前的标签页和布局
【解决方案5】:

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

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

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

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

【讨论】:

  • 如果你使用nnoremap &lt;C-W&gt;M &lt;C-W&gt;\|&lt;C-W&gt;_|后面没有空格),那么每次最大化时光标不会移动1。
  • 我喜欢使用反斜杠 (nnoremap &lt;C-W&gt;\ &lt;C-W&gt;\|&lt;C-W&gt;_)。使用默认绑定 |_= 感觉很自然。
【解决方案6】:

您可以获得完整大小的帮助窗口,而无需关闭/调整任何其他窗口的大小

tab help {topic}

这将在新选项卡中打开帮助窗口,其他窗口将保持原样(实际调整大小以便显示选项卡行,但这只是上面的附加行)。您可以像往常一样关闭帮助:至少 :bw&lt;CR&gt;&lt;C-w&gt;c 也可以为我关闭新标签页。

【讨论】:

    【解决方案7】:

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

    【讨论】:

      【解决方案8】:

      插件ZoomWin

      查尔斯·坎贝尔

      这个插件重新映射

      Ctrl-w o

      两者都做:最大化和恢复以前的布局。

      这个插件可以从两个地方下载

      【讨论】:

        【解决方案9】:

        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>
        

        使用映射键(在我的例子中是Leader 和+)在最大化/以前的布局之间切换。如果您在同一选项卡中更改为另一个拆分,则最大化会关闭。

        如果您更改选项卡,则拆分保持最大化,尽管它不会再覆盖完整的全宽,宽度最小化的窗口会获得大约 4 列或其他东西。无论如何,即使有那个小怪癖,它对我来说也可以接受

        编辑:不知何故它现在工作正常,以前一定是搞砸了。

        【讨论】:

        • 这太棒了
        【解决方案10】:

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

        【讨论】:

          【解决方案11】:

          在你的 .vimrc 中,放置

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

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

          【讨论】:

          • 不错,但 = 不会恢复“最后状态”。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-07-21
          • 1970-01-01
          • 2010-09-23
          • 2010-10-03
          • 1970-01-01
          相关资源
          最近更新 更多