Answers:
与Heptite解决方案相同的想法,但作为一个衬套。可以通过这种方式完成许多其他事情:获取缓冲区的名称(感谢映射),与模式匹配的擦除缓冲区,https: //stackoverflow.com/questions/2974192/how-can-i-pare-down- vims缓冲区列表仅包含活动缓冲区/ 2974600#2974600n等。
echo len(filter(range(1, bufnr('$')), 'buflisted(v:val)'))
据我所知,Vim中没有内置方法可以执行此操作,但是您可以创建一个函数:
function! NrBufs()
let i = bufnr('$')
let j = 0
while i >= 1
if buflisted(i)
let j+=1
endif
let i-=1
endwhile
return j
endfunction
将上面的内容放入一个以.vim结尾的文本文件中:source,然后可以执行以下操作:
:let buffer_count = NrBufs()
:echo buffer_count
6月21日注意:如果您有截至2017年的Vim最新版本,则Gid的以下回答是最佳解决方案。
您是否在寻找?
:echo(bufnr('$'))