我把窗户横着分开了。现在我如何回到正常模式,即没有分裂窗口,只有一个窗口,而不取消所有打开的窗口。我有5个,并不想“退出”,只是想从分裂的窗口出去。
当前回答
我很好地理解了你的意图,我也专门使用缓冲区,如果需要,偶尔也会进行分割。
下面是我的.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,如果需要,和外部文本处理命令,例如:'{,'}!Awk 'some_programm',或者使用:norm!normal-command-here。
其他回答
就像之前说的那样,这样做的方法是按ctrl+w然后o。这将“最大化”当前窗口,同时关闭其他窗口。如果你想“不最大化”它,有一个插件叫ZoomWin。否则,您必须从头重新创建窗口设置。
按Control+w,然后按q一次关闭每个窗口。
更新:也考虑eckes的答案,这可能对你更有用,包括:on(阅读下面),如果你不想一次只做一个窗口。
好的,我只是分离并重新连接到屏幕会话,我回到了我想要的正常屏幕
要关闭所有分割,我通常将光标放在on-ly可见的窗口中,然后执行:,使当前窗口成为on-ly可见窗口。很好的助记方法。
Edit::help:on告诉我这些命令是相同的:
:在 :只有 CTRL-w CTRL-o 是的,CTRL-W o也有同样的效果(正如Nathan回答的那样)。
这四个选项都会关闭除活动窗口外的所有窗口。
命令:hide将隐藏当前聚焦的窗口。我认为这就是你想要的功能。
为了在窗口之间导航,键入Ctrl+w后跟一个导航键(h,j,k,l或方向键)
有关更多信息,请运行:help window和:help hide in vim。