Vim 使用一个命令删除除第一个缓冲区以外的所有缓冲区

Vim 使用一个命令删除除第一个缓冲区以外的所有缓冲区,vim,Vim,我正在使用perlsupport插件对代码进行语法检查。当它进行语法检查时,会将带有警告和错误的文件放入缓冲区。有时我想快速关闭除第一个缓冲区之外的其他缓冲区,因为它是我当前正在使用的脚本 我尝试了2、:bd和2、$:bd和:bd 2 Quickfix\List和:bd 2[Quickfix\List]以及其他变体,但没有成功。谢谢 我应该补充一点,我知道我可以列出缓冲区,找到最后一个缓冲区编号,并执行类似于2,N:bd的操作,但我希望只有一个命令可以变成快捷方式。您可以编写一个命令,用于生成正

我正在使用perlsupport插件对代码进行语法检查。当它进行语法检查时,会将带有警告和错误的文件放入缓冲区。有时我想快速关闭除第一个缓冲区之外的其他缓冲区,因为它是我当前正在使用的脚本

我尝试了
2、:bd
2、$:bd
:bd 2 Quickfix\List
:bd 2[Quickfix\List]
以及其他变体,但没有成功。谢谢


我应该补充一点,我知道我可以列出缓冲区,找到最后一个缓冲区编号,并执行类似于
2,N:bd
的操作,但我希望只有一个命令可以变成快捷方式。

您可以编写一个命令,用于生成正确的
bd
命令:

command! Bd exec '2,' . bufnr("$") . 'bd'
是最后一个缓冲区的编号

作为测试:

:badd foo
:badd bar
:Bd
给出:

2 buffers deleted
:2999BD
?从-可能重复。