Jawaban:
Gagasan yang sama dari solusi Heptite, tetapi sebagai satu kalimat. Banyak hal lain dapat dilakukan dengan cara ini: dapatkan nama buffer (terima kasih untuk peta), hapus buffer yang cocok dengan pola , /programming/2974192/how-can-i-pare-down- vims-buffer-list-to-only-include-active-buffer / 2974600 # 2974600n dll.
echo len(filter(range(1, bufnr('$')), 'buflisted(v:val)'))
Jawaban sejauh ini terlalu rumit. Ini adalah cara bawaan vim:
len(getbufinfo({'buflisted':1}))
Seperti biasa, lihat bantuan vim ( :h getbufinfo()
) untuk penjelasan resmi.
Setahu saya tidak ada metode bawaan di Vim untuk melakukan ini, tetapi Anda bisa membuat fungsi:
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
Masukkan yang di atas dalam file teks dengan nama yang berakhiran .vim,: sumber, maka Anda dapat melakukan sesuatu seperti:
:let buffer_count = NrBufs()
:echo buffer_count
Catatan 21 Juni: Jika Anda memiliki versi terbaru Vim pada 2017, jawaban Gid di bawah ini adalah solusi optimal.
Apakah Anda mencari mungkin?
:echo(bufnr('$'))