在Vim中取消拆分窗口
我已经水平分割我的窗户。 现在我怎样才能返回到正常模式,即没有拆分窗口只有一个窗口,而不取消所有打开的窗口。 我有5,不想“退出”,只想走出拆分窗口。
按Control + w ,然后按qclosures每个窗口。
更新 :另外考虑eckes的答案,这可能会对你更有用,涉及:on
如果你不想一次只做一个窗口,请阅读下文。
要closures所有的分割,我通常把光标放在窗口中,这个窗口应该是可见的窗口,然后执行:on
使当前窗口成为可见的窗口。 很好记忆记忆。
编辑:: :help :on
给我看,这些命令是一样的:
-
:on
-
:only
- CTRL-W CTRL-o
- 是的, CTRL-W o也有同样的效果(就像Nathan 回答的那样 )。
除了活动的窗口之外,这四个窗口都closures。
closures所有窗口,但目前的使用:
CTRL + w , o
那就是先CTRL + w然后o 。
closures当前窗口的两种select是ZZ
和ZQ
,它们将分别保存并不保存对显示的缓冲区的更改。
命令:hide将隐藏当前聚焦的窗口。 我认为这是你正在寻找的function。
要在窗口之间导航,请按Ctrl + w后跟导航键(h,j,k,l或箭头键)
欲了解更多信息运行:help window
和:help hide
在vim。
就像之前所说的那样,要按ctrl + w然后按o 。 这将使当前窗口“最大化”,同时closures其他窗口。 如果你想能够“unmaximize”它,那里有一个名为ZoomWin的插件。 否则,你将不得不从头开始重新创build窗口设置。
我很好地理解你的意图,我也只使用缓冲区,偶尔会根据需要做分割。
下面是我的.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!
这很适合我的工作stream程
如果
q
被按下
- 隐藏当前窗口,如果多个窗口打开,否则尝试退出vim。
如果
qo
被按下,
- closures所有其他窗口,如果只有一个窗口没有效果。
当然,你可以把这个杂乱的部分包装成一个函数 ,例如
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
,因为我不使用macros进行编辑,而是使用:s
, :g
, :v
和外部文本处理命令(如果需要),例如:'{,'}!awk 'some_programm'
,或者使用:norm! normal-command-here
:norm! normal-command-here
。
好吧,我只是分开,重新连接到屏幕会议,我回到了正常的屏幕,我想
我发现ctrl-w到你要closures的窗口,然后只是:q这对我有用。