我水平地拆开了窗户。现在我怎么能回到正常模式,即没有拆除窗口只是一个窗口而没有取消我所有打开的窗口。我有5并且不想“退出”,只想摆脱分裂窗口。
答案 0 :(得分:260)
按 Control + w ,然后按 q 一次关闭每个窗口。
更新:还要考虑对您来说更有用的eckes答案,如果您不想一次只在一个窗口进行,请参与:on
(如下所示)。 / p>
答案 1 :(得分:238)
要关闭所有分割,我通常将光标放在窗口中,该窗口应为 on - 可见的那个,然后执行:on
使当前窗口为 on - 可见窗口。记住好的助记符。
编辑: :help :on
向我展示了这些命令是相同的:
这四个中的每一个都会关闭除活动窗口之外的所有窗口。
答案 2 :(得分:52)
关闭所有窗口,但当前使用的是:
CTRL + w , o
即,首先 CTRL + w 然后 o 。
答案 3 :(得分:26)
关闭当前窗口的两个备选方案是ZZ
和ZQ
,它们将分别保存并不保存对显示的缓冲区的更改。
答案 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]
关闭所有其他窗口,但保持所有缓冲区打开