在Vim中取消拆分窗口

时间:2011-01-26 20:34:02

标签: vim split window

我水平地拆开了窗户。现在我怎么能回到正常模式,即没有拆除窗口只是一个窗口而没有取消我所有打开的窗口。我有5并且不想“退出”,只想摆脱分裂窗口。

10 个答案:

答案 0 :(得分:260)

Control + w ,然后按 q 一次关闭每个窗口。

更新:还要考虑对您来说更有用的eckes答案,如果您不想一次只在一个窗口进行,请参与:on(如下所示)。 / p>

答案 1 :(得分:238)

要关闭所有分割,我通常将光标放在窗口中,该窗口应为 on - 可见的那个,然后执行:on使当前窗口为 on - 可见窗口。记住好的助记符。


编辑: :help :on向我展示了这些命令是相同的:

  • :on
  • :only
  • CTRL-w CTRL-o
  • 是的, CTRL-W o 也有同样的效果(Nathan answered)。

这四个中的每一个都会关闭除活动窗口之外的所有窗口。

答案 2 :(得分:52)

关闭所有窗口,但当前使用的是:

CTRL + w o

即,首先 CTRL + w 然后 o

答案 3 :(得分:26)

关闭当前窗口的两个备选方案是ZZZQ,它们将分别保存并不保存对显示的缓冲区的更改。

答案 4 :(得分:6)

命令:hide将隐藏当前聚焦的窗口。我认为这是您正在寻找的功能。

要在窗口之间导航,请按Ctrl + w,然后按导航键(h,j,k,l或箭头键)

有关详细信息,请在vim。

中运行:help window:help hide

答案 5 :(得分:1)

就像其他人说的那样,在这样做的方法是按 ctrl + w 然后 o 。这将“最大化”当前窗口,同时关闭其他窗口。如果您希望能够“取消最大化”它,那么就会有一个名为ZoomWin的插件。否则,您必须从头开始重新创建窗口设置。

答案 6 :(得分:1)

我发现 ctrl + w 到你要关闭的窗口,然后只做:q 。这对我有用。

答案 7 :(得分:1)

我理解你的意图很好,我也只使用缓冲区,偶尔也需要拆分。

下面的

是我的.vimrc

的摘录
" disable macro, since not used in 90+% use cases
map q <Nop>
" q,  close/hide current window, or quit vim if no other window
nnoremap q :if winnr('$') > 1 \|hide\|else\|silent! exec 'q'\|endif<CR>
" qo, close all other window    -- 'o' stands for 'only'
nnoremap qo :only<CR>
set hidden
set timeout
set timeoutlen=200   " let vim wait less for your typing!

非常适合我的工作流程

  

如果按下q

     
      
  • 如果多个窗口打开则隐藏当前窗口,否则尝试退出vim。
  •   
     

如果按下qo

     
      
  • 关闭所有其他窗口,如果只有一个窗口则无效。
  •   

当然,你可以将这个混乱的部分包装成一个函数,例如

func! Hide_cur_window_or_quit_vim()
    if winnr('$') > 1
        hide
    else
        silent! exec 'q'
    endif
endfunc
nnoremap q :call Hide_cur_window_or_quit_vim()<CR>

<强>旁注: 我重新映射q,因为我不使用宏进行编辑,而是使用:s:g:v和外部文本处理命令(如果需要),例如{{1} },或使用:'{,'}!awk 'some_programm'

答案 8 :(得分:0)

好的,我只是分离并重新连接到屏幕会话,我回到了我想要的正常屏幕

答案 9 :(得分:0)

:help opening-window(搜索“关闭窗口”-/Closing a window

  • :q[uit]关闭当前窗口和缓冲区。如果是最后一个窗口,它也会退出vim
  • :bd[elete]卸载当前缓冲区并关闭当前窗口
  • :qa[all]:quita[ll]将关闭所有缓冲区和窗口并退出vim(:qa!强制不保存更改)
  • :clo[se]关闭当前窗口,但保持缓冲区打开。如果只有一个窗口,此命令将失败
  • :hid[e]隐藏当前窗口中的缓冲区(有关详细信息,请访问:help hidden
  • :on[ly]关闭所有其他窗口,但保持所有缓冲区打开