in vim, mit
:buffers
Ich bekomme die Anzahl aller Puffer gleich mit
:ls
, aber
wie kann ich die Gesamtzahl der Puffer erhalten?
in vim, mit
:buffers
Ich bekomme die Anzahl aller Puffer gleich mit
:ls
, aber
wie kann ich die Gesamtzahl der Puffer erhalten?
Antworten:
Dieselbe Idee wie die Lösung von Heptite, jedoch als Einzeiler. Viele andere Dinge können auf diese Weise getan werden: Abrufen des Namens des Puffers (dank Karte), Löschen von Puffern, die einem Muster entsprechen , /programming/2974192/how-can-i-pare-down- vims-buffer-list-to-only-include-active-buffer / 2974600 # 2974600n usw.
echo len(filter(range(1, bufnr('$')), 'buflisted(v:val)'))
Die bisherigen Antworten sind zu hackig. Hier ist die integrierte Methode von vim:
len(getbufinfo({'buflisted':1}))
:h getbufinfo()
Die offizielle Erklärung finden Sie wie immer in der Hilfe von vim ( ).
Meines Wissens gibt es in Vim keine integrierte Methode, um dies zu tun, aber Sie könnten eine Funktion erstellen:
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
Fügen Sie das Obige in eine Textdatei ein, deren Name auf .vim ,: source it endet. Dann können Sie Folgendes tun:
:let buffer_count = NrBufs()
:echo buffer_count
Hinweis vom 21. Juni: Wenn Sie ab 2017 eine aktuelle Version von Vim haben, ist die folgende Antwort von Gid die optimale Lösung.
Suchen Sie vielleicht?
:echo(bufnr('$'))