我正在编写一个vim
插件,但我注意到一个错误,该错误无法自动清除临时缓冲区。我正在使用Vader测试框架插件对其进行测试,我希望能够通过Vader测试来验证该修复程序并防止出现回归。
我将使用:ls
命令来验证缓冲区列表没有增长,但是我不知道如何从Vader访问此输出。
那么,可以使用Vader来测试缓冲区列表没有增长吗?本质上,我只需要验证执行命令后所显示的缓冲区列表与以前相同即可。我不需要对缓冲区列表进行细粒度检查。
答案 0 :(得分:2)
这不是Vader特有的,但是您可以通过:redir
捕获任何Ex命令的输出,或者更方便地(在新的Vim版本中)使用:help execute()
捕获。
但是,对于您所描述的用例,您根本不需要解析:ls
的输出:缓冲区分配的数字越来越多,可以通过{{1 }}。因此,只需存储原始值并将其与以后的查询进行比较,就可以确保不创建其他缓冲区。
如果您确实需要对缓冲区进行更多的细粒度检查(您的问题尚不清楚),则可以对所有可能的缓冲区使用bufnr('$')
,例如获取所有列出的缓冲区(或通过filter()
加载的缓冲区):
bufloaded()