如何仅在vim的当前选项卡中关闭所有窗口

如何仅在vim的当前选项卡中关闭所有窗口,vim,Vim,我知道:qa关闭所有缓冲区和窗口并退出vim。很明显,我可以使用:q退出给定选项卡中的单个窗口/拆分。但是考虑一下在当前选项卡中有三个窗口以及一组相邻的打开选项卡的情况。我想关闭当前选项卡中的三个窗口,但不想退出vim或其他相邻选项卡 我该怎么做?我浏览了vim帮助文件,但似乎没有直接选项。我认为使用vimscript获得这样的功能是可能的,但我想在得出结论之前确定这是唯一的选择 如果vim不直接支持它,而且有人非常棒,为它写了一个插件,我很想知道它。我还发现这个命令很有效。帮助选项卡页上的帮助

我知道
:qa
关闭所有缓冲区和窗口并退出vim。很明显,我可以使用
:q
退出给定选项卡中的单个窗口/拆分。但是考虑一下在当前选项卡中有三个窗口以及一组相邻的打开选项卡的情况。我想关闭当前选项卡中的三个窗口,但不想退出vim或其他相邻选项卡

我该怎么做?我浏览了vim帮助文件,但似乎没有直接选项。我认为使用vimscript获得这样的功能是可能的,但我想在得出结论之前确定这是唯一的选择


如果vim不直接支持它,而且有人非常棒,为它写了一个插件,我很想知道它。

我还发现这个命令很有效。
帮助选项卡页
上的帮助页面非常有用

:tabc

正如@glts在评论中指出的,我需要先整理好我的vim术语,然后才能找到答案。

你的意思是要关闭当前选项卡页面吗?然后是
:tabclose
命令。

现有答案表明
:tabc[lose]
是正确的。然而,有一种情况下,另一个答案可能有用

如果要在打开新选项卡并将一些新文件拉入其中之前关闭当前选项卡中的窗口以减少打开的内容,则
tabclose
选项仍然有效;简而言之,您将执行
:tabc | tabe
。然而,我心中的Vim纯粹主义者忍不住指出,您可以通过键入
:on | ene
来省去三次击键,这是
:only | enew
,或者“关闭当前选项卡中除此之外的所有窗口;现在,在此窗口中打开一个新的未命名文件。”如果要用命名文件替换当前的窗口,这个习惯用法比另一个短两次,总共五次:
:on | e foo.txt
:tabc | tabe foo.txt


因此,虽然这个问题的正确答案通常是
:tabclose
命令,但在某些情况下,
:on | e
:on | ene
更为有用。

在Vim术语中,一个“拆分”=一个“窗口”。关闭“当前窗口中的所有拆分”是什么意思?你是在说标签页吗?@glts是的,我在发布后不久就意识到我弄乱了术语。现在修好它。谢谢你指出。我大概在你回答的时候就猜出来了。谢谢。我怎样才能关闭最后一个标签页?@HieuM.Nguyen当前,您必须知道标签号并将其指定到
:tabclose
。对于一些相关命令(
:close
:argadd
:argdelete
),有一个增强处理
{count}
参数的方法。可能需要要求作者将相对偏移量处理包括到
:tabclose
,以便
:$tabclose
工作。谢谢jamessan。我的目的是为关闭tabpage绑定一个快捷方式。我写了一个自动命令,在
:tabclose
:q
之间切换取决于当前选项卡的数量:
au TabEnter*让g:tabcount=tabpagenr('$)|如果tabcount==1 | nnoremap c:q |否则| nnoremap c:tabclose | endif
@HieuM.Nguyen使用映射可能更简单<代码>nnoremap c tabpagenr(“$”)>1?':tabclose':':q'似乎是一种更简单的方法来做你想做的事情。