取消Vim中的拆分窗口

取消Vim中的拆分窗口,vim,split,window,Vim,Split,Window,我把窗户水平分开了。现在,我如何才能返回到正常模式,即没有拆分窗口,只有一个窗口,而不取消所有打开的窗口。我有5个,不想“退出”,只想离开分裂窗口 按Control+w,然后按q一次关闭每个窗口 更新< /强>:还考虑ECKES的答案,这可能对你更有帮助,涉及:(下面阅读)如果你不想一次做一个窗口。 < P>好的,我刚刚分离并重新连接到屏幕会话,回到正常的屏幕,我想要命令:隐藏将隐藏当前聚焦的窗口。我想这就是你想要的功能 要在窗口之间导航,请键入Ctrl+w,然后键入导航键(h、j、k、l或箭

我把窗户水平分开了。现在,我如何才能返回到正常模式,即没有拆分窗口,只有一个窗口,而不取消所有打开的窗口。我有5个,不想“退出”,只想离开分裂窗口

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


<强>更新< /强>:还考虑ECKES的答案,这可能对你更有帮助,涉及<代码>:(下面阅读)如果你不想一次做一个窗口。

< P>好的,我刚刚分离并重新连接到屏幕会话,回到正常的屏幕,我想要

命令:隐藏将隐藏当前聚焦的窗口。我想这就是你想要的功能

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


有关更多信息,请在vim中运行
:帮助窗口
:帮助隐藏

关闭当前窗口的两个备选方法是
ZZ
ZQ
,它们将分别保存和不保存对显示缓冲区的更改

要关闭除当前窗口外的所有窗口,请使用:

CTRL+w,o


也就是说,首先按住CTRL+w键,然后按o键。

要关闭所有拆分,我通常将光标放在窗口中,该窗口应为-ly可见窗口,然后执行
:on
,使当前窗口成为on-ly可见窗口。很好的记忆法


编辑:告诉我这些命令是相同的:

  • :on
  • :仅限
  • CTRL-w CTRL-o
  • 是的,CTRL-W o也有相同的效果(和)

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

就像前面提到的其他窗口一样,方法是按ctrl+w,然后按o。这将“最大化”当前窗口,同时关闭其他窗口。如果你想“取消最大化”它,有一个插件叫它。否则,您必须从头开始重新创建窗口设置。

我发现ctrl+w组合键指向要关闭的窗口,然后只需执行:q。这对我很有用。

我很理解您的意图,我也专门使用缓冲区,如果需要,偶尔也会进行拆分

以下是我的
.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
,因为我不使用宏进行编辑,而是使用
:s
:g
:v
,以及外部文本处理命令(如果需要),例如,
:“{,”}!awk“some_program”
,或使用
:norm!此处的常规命令

来自
:帮助打开窗口
(搜索“关闭窗口”/关闭窗口)

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

我同意,但OP没有选择eckes的答案,我自己也无法更改。我非常确定这是正确的答案。这是为我做的,如果你看op的问题,他不想关闭其他打开的窗口,只是最近拆分的一个。如果显示的缓冲区包含未保存的更改,则没有帮助。它说我应该用它覆盖!但我不知道怎么做。作为一个菜鸟,我现在迷路了。所以保存它吧。如果你不知道如何保存,你不需要这个答案。有可能你甚至没有保存的权限。从传统的GUI编辑器来看,这是一个非常奇怪的概念。不过,设置
hidden
似乎有帮助。不过,我的意思是,如何添加一个!走捷径?是不是“C-w!q”,“C-w q!”,“!C-w q”,“C-!w q”?我想这些都没有,但我已经忘记了如何创建新的缓冲区,所以这是一个读者练习。这很好。Chrome(带有ssh插件)陷阱为“closetab”,有效地禁用了所有vim的窗口命令。有一个替代选项非常有用。+1如果另一个窗口包含任何意外更改,
:on
将以
E445:other window contains changes
响应,并且不会关闭另一个窗口。例如,我通常创建一个新窗口,并向其中读取一个我想从中提取的文件。在这种情况下,Vim认为另一个窗口有未写入的更改。在这种情况下,请使用
:on强制关闭。你有可能接受埃克斯的回答吗?它比目前被接受的方式更有用……这肯定是“vim方式”,crtl+w看起来很像emacs。我不喜欢
Z
,因为我是德国人。(扰流板:键盘布局,如果您经常在DE/EN设置之间切换)我还想知道是否有办法撤消意外键入的
CTRL+W
。不,没有办法撤消,除非您采取了允许撤消的操作。看,这是一个重复的答案真的,重复的东西已经坐在那里3年多了。@WarrenP看起来不像一个dup。我没有找到任何其他答案提到
^W^W:q
是一个可能的解决方案,所以不要分裂。请注意,
^W切换到您要关闭的窗口
显然意味着多次使用
^W^W
切换到您要关闭的窗口..My bad。另一个是^W,那么其他的不会离开
vim
的分割窗口模式,这只会离开
screen
的分割窗格模式-这很容易出错,也许其他人也会这样做。顺便说一句,我觉得这个屏幕功能很烦人,因此我现在默认为
tmux
,它允许重新连接所有拆分
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>