如何一次关闭所有打开的标签?


403

如果我打开了10个标签,则必须分别使用“:q”关闭每个标签。

如何立即关闭它们?

Answers:


595

最短/最简单/最快的方法是:

:qa

要保存所有选项卡中的工作并退出:

:wqa

29
:wqa可以简化为:xa
MattK 2011年

144
永不使用:x永不永不永不。有一天,您会搞砸:X,并且会对文件进行加密,而且您也不知道密钥。
亚伦·麦克米林

29
@AaronMcMillin我一直使用:x,并且从未意外地加密过文件。
Singlestone 2014年

13
确实对我有好处!我可能是例外。我至少是一个数据点。永远不要说“永不永不”,这是我的座右铭。:)
Singlestone

16
@AaronMcMillin:我知道这是一个老问题,但是至少在我当前的Vim上,您必须(1)输入大写字母X(2)意外输入密码,(3)意外再次输入相同的密码,然后再输入一个问题。我不太可能...
jwd 2015年

203

我经常使用:tabo:tabonly)关闭所有其他标签。


14
通过“:on”(对于“ only”,即“仅显示的窗口”)可以更快地“关闭所有其他选项卡”。:)
孟买

8
@炸弹:对我来说也没有用。至少在vim 7.3.3中:on仅关闭窗口,而不关闭选项卡。
Boldewyn

1
:tabo正是我一直在寻找。如果可以的话,我会给你投票30次。:)
贾斯汀·

这样做还有一个好处,就是它仍将所有选项卡保留在缓冲区列表中。您可以通过看到它们:ls。因此,您仍然可以在以后恢复这些选项卡。或将它们转换为Windows等
。– wisbucky

24

可以使用以下命令(在正常或转义模式下)完成此操作:

:tabdo :q

“ tabdo”显然对所有打开的选项卡执行命令。


请注意,这不是我的答案。我将其从原来的非问题移到了这里。
mmcdole,2009年


15

您可以使用这些的Vim Ex命令退出多重窗口和缓冲区

  1. :qa :qall

    退出Vim,除非更改了某些缓冲区。(:bmod用于转到下一个修改的缓冲区)。设置“ autowriteall”后,所有更改的缓冲区都会被写入,例如:wqall

  2. :conf qa :confirm qall

    退出Vim。某些缓冲区已更改时出现提示。请参阅:confirm

  3. :qa! :qall!

    退出Vim。对缓冲区的任何更改都将丢失。另请参见:cquit,它的作用相同,但退出时的值非零。

  4. :quita :quitall :quita! :quitall!

    与相同:qall

  5. :wqa :wqall :xa :xall

    写入所有更改的缓冲区并退出Vim。如果存在没有文件名的缓冲区,这些缓冲区是只读的或由于其他原因而不能写的,Vim不会退出。

  6. :conf wqa :confirm wqall :conf xa :confirm xall

    写入所有更改的缓冲区并退出Vim。当某些缓冲区为只读或由于其他原因而无法写入时,提示您。请参阅:confirm

  7. :wqa! :xa! :wqall! :xall!

    写入所有更改的缓冲区,甚至是只读缓冲区,然后退出Vim。如果存在没有文件名的缓冲区或由于其他原因而无法写入的缓冲区,Vim不会退出。

要在Vim中阅读这些内容,请键入以下Ex命令

:help window-exit


0

这是在Linux / Mac上关闭所有VIM实例的暗中方式

:!killall vim -9

不要使用它。它可以满足您的要求,但可能不是最好的方法,但很有趣

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.