em vim, com
:buffers
Eu recebo o número de todos os buffers da mesma forma
:ls
, mas
como posso obter o número total de buffers?
em vim, com
:buffers
Eu recebo o número de todos os buffers da mesma forma
:ls
, mas
como posso obter o número total de buffers?
Respostas:
A mesma idéia que a solução de Heptite, mas como uma única linha. Muitas outras coisas podem ser feitas dessa maneira: obtenha o nome do buffer (graças ao mapa), limpe os buffers que correspondem a um padrão , /programming/2974192/how-can-i-pare-down- vims-buffer-list-only-include-active-buffers / 2974600 # 2974600n etc.
echo len(filter(range(1, bufnr('$')), 'buflisted(v:val)'))
As respostas até agora são muito hacky. Aqui está a maneira integrada do vim:
len(getbufinfo({'buflisted':1}))
Como sempre, consulte a ajuda do vim ( :h getbufinfo()
) para obter a explicação oficial.
Que eu saiba, não há método interno no Vim para fazer isso, mas você pode criar uma função:
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
Coloque o texto acima em um arquivo de texto com o nome terminado em .vim,: source, e você pode fazer algo como:
:let buffer_count = NrBufs()
:echo buffer_count
Nota de 21 de junho: Se você possui uma versão recente do Vim a partir de 2017, a resposta de Gid abaixo é a solução ideal.
Você está procurando talvez?
:echo(bufnr('$'))