对于一个工具我需要计算仍然列出的所有vim缓冲区(有列出和未列出的缓冲区)
遗憾的是vim.buffers
包含所有缓冲区,如果列出或不列出缓冲区,似乎没有一个属性可供参考
我想做的vim命令是
:buffers
不幸的是,使用vim python api可能会模仿
:buffers!
但没有列出/未列出的元数据,我们需要
答案 0 :(得分:6)
以下是使用Vim语言管理此方法的方法。
function s:buffers_list()
let result = []
for buffer_number in range(1, bufnr('$'))
if !buflisted(buffer_number)
continue
endif
call add(result, buffer_number)
endfor
return result
endfunction
答案 1 :(得分:3)
使用Vim的python api:
listedBufs = []
for b in vim.buffers:
listed = vim.eval('buflisted(bufnr("%s"))' % b.name)
if int(listed) > 0:
listedBufs.append(b)
或者如果你不介意牺牲一些可读性:
listedBufs = [b for b in vim.buffers
if int(vim.eval('buflisted(bufnr("%s"))' % b.name)) > 0]