无法在Vim中通过一个命令closures多个缓冲区

我在屏幕上使用Vim。 我运行命令

vim <bigFolder> 

我陷入困境,因为通过closures每个缓冲区是没有意义的

 :q 

如何通过Vim中的一个命令closuresVim中的所有活动缓冲区

:qall:qa将closures所有窗口

使用:bufdo命令可以在所有缓冲区上执行命令。 在这种情况下,您想运行:bufdo bdeleteclosures所有打开的缓冲区。

:%BD(elete)

我想这是你要求的

 :on 

将closures除当前正在编辑的缓冲区外的所有缓冲区(游标位于此缓冲区内)。

 :on! 

也将closures修改后的缓冲区,但是这些将成为隐藏缓冲区

 :ls 

将列出所有的缓冲区与他们的状态(隐藏,…)

一些帮助:

 :h only :h hidden-buffer :h ls 

:on不会closures任何缓冲区。

它只closures其他窗口。

这不是你所要求的,但是下面可能会给出一个理想的结果。 它:

  • 使当前选项卡成为唯一打开的选项卡( :tabo
  • 使选项卡中的窗口成为唯一打开的窗口( :only :)
  • 在打开窗口( 1 b )中显示第一缓冲区
  • 删除编号为2到2000( 2,2000bd )的缓冲区

    :tabo | :only | 1 b | 2,2000 bd

如果您打开了超过2000个缓冲区,请相应地进行调整。

它只是想删除所有的缓冲区, 1,2000bd应该做的工作,但请注意新的,空的缓冲区将被创build为所有打开的标签和窗口。

这不会保存缓冲区。 也许:wqall! :xall! 好一点

如果您碰巧遇到VIM完全卡住,您应该仍然能够从VIM外部杀死它。

  • 如果你能够用CTRL + Z暂停VIM,那么你可以用kill %vim来杀死它
  • 如果你不能挂起VIM你应该可以使用psfind它的pid。 你可以杀死它:
 $ ps -f -C vim UID PID PPID C STIME TTY TIME CMD nfellman 27273 7473 0 Jun24 pts/15 00:00:00 /nfs/iil/home/nfellman/vim/bin/vim a.pl nfellman 37213 23747 0 Jun23 pts/15 00:00:00 /nfs/iil/home/nfellman/vim/bin/vim b.pl 

所以如果我想杀死正在编辑a.pl的VIM,你可以这样做:

 kill -9 27273 

这应该在屏幕内工作

:q!

总是为我工作。