我正在编写一个vim插件,我注意到一个错误,其中临时缓冲区不是自动清理的。我正在使用维德测试框架插件来测试它,我希望能够用Vader测试验证修复并防止回归。
我会使用:ls命令来验证缓冲区列表没有增长,但是我不知道如何访问Vader的输出。
那么,是否可以使用Vader来测试缓冲区列表没有增长呢?本质上,我只需要验证在执行命令后显示的缓冲区列表是否与以前相同。我不需要对缓冲区列表进行细粒度检查。
发布于 2019-02-25 08:24:42
这并不是Vader特有的,但是您可以通过:redir捕获任何Ex命令的输出,或者使用:help execute()更方便地捕获(在较新的Vim版本中)。
但是,对于您所描述的用例,根本不需要解析:ls的输出:缓冲区分配的数量越来越多,最高的缓冲区可以通过bufnr('$')获得。因此,仅通过存储原始值并将其与稍后的查询进行比较,就可以确保不创建额外的缓冲区。
如果您确实需要对缓冲区进行更细粒度的检查(您的问题不太清楚),您可以对所有可能的缓冲区使用filter(),例如获取所有列出的缓冲区(或通过bufloaded()加载的缓冲区):
:echo filter(range(1, bufnr('$')), 'buflisted(v:val)')https://stackoverflow.com/questions/54852864
复制相似问题