en vim, con
:buffers
Obtengo el mismo número de buffers con
:ls
, pero
¿cómo puedo obtener el número total de buffers?
en vim, con
:buffers
Obtengo el mismo número de buffers con
:ls
, pero
¿cómo puedo obtener el número total de buffers?
Respuestas:
La misma idea que la solución de Heptite, pero como una sola línea. Se pueden hacer muchas otras cosas de esta manera: obtenga el nombre del búfer (gracias al mapa), elimine los búferes que coincidan con un patrón , /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)'))
Las respuestas hasta ahora son demasiado extravagantes. Aquí está la forma incorporada de vim:
len(getbufinfo({'buflisted':1}))
Como siempre, vea la ayuda de vim ( :h getbufinfo()
) para la explicación oficial.
Que yo sepa, no hay un método incorporado en Vim para hacer esto, pero podría crear una función:
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
Ponga lo anterior en un archivo de texto con su nombre que termine en .vim,: fuente, luego puede hacer algo como:
:let buffer_count = NrBufs()
:echo buffer_count
Nota del 21 de junio: si tiene una versión reciente de Vim a partir de 2017, la respuesta de Gid a continuación es la solución óptima.
¿Estás buscando quizás?
:echo(bufnr('$'))