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

时间:2016-04-15 18:24:18

标签: vim

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

我已尝试2,:bd2,$:bd以及:bd 2 Quickfix\ List:bd 2 [Quickfix\ List]以及其他变体而未成功。感谢。

我应该补充一点,我知道我可以列出缓冲区,查找最后一个缓冲区编号并执行类似2,N:bd之类的操作,但我宁愿只使用一个命令来转换为快捷方式。

1 个答案:

答案 0 :(得分:0)

您可以编写一个使用exec构建正确的bd命令的命令:

command! Bd exec '2,' . bufnr("$") . 'bd'

bufnr("$")是最后一个缓冲区的编号。

作为测试:

:badd foo
:badd bar
:Bd

给出:

2 buffers deleted