à vim, avec
:buffers
J'obtiens le même nombre de tampons avec
:ls
, mais
comment obtenir le nombre total de tampons?
à vim, avec
:buffers
J'obtiens le même nombre de tampons avec
:ls
, mais
comment obtenir le nombre total de tampons?
Réponses:
Même idée que la solution de Heptite, mais en un seul revêtement. Beaucoup d'autres choses peuvent être faites de cette façon: obtenir le nom du tampon (grâce à la carte), effacer les tampons qui correspondent à un modèle , /programming/2974192/how-can-i-pare-down- vims-buffer-list-to-only-include-active-buffers / 2974600 # 2974600n etc.
echo len(filter(range(1, bufnr('$')), 'buflisted(v:val)'))
Jusqu'à présent, les réponses sont trop floues. Voici la méthode intégrée de vim:
len(getbufinfo({'buflisted':1}))
Comme toujours, consultez l'aide de vim ( :h getbufinfo()
) pour l'explication officielle.
À ma connaissance, il n'y a pas de méthode intégrée dans Vim pour ce faire, mais vous pouvez créer une fonction:
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
Mettez ce qui précède dans un fichier texte avec son nom se terminant par .vim,: sourcez-le, puis vous pouvez faire quelque chose comme:
:let buffer_count = NrBufs()
:echo buffer_count
Remarque du 21 juin: si vous avez une version récente de Vim à partir de 2017, la réponse de Gid ci-dessous est la solution optimale.
Cherchez-vous peut-être?
:echo(bufnr('$'))