Я хочу использовать ярлык (,q
) для удаления буферов , который мне не нужен, но я хочу использовать тот же ярлык для quit vim , когда текущий буфер единственный буфер в списке .
Я сейчас использую эту функцию:
function! MyClose()
" :q if at most one buffer is loaded
" :bdelete otherwise
let bufcount = len(filter(range(1,bufnr('$')), 'buflisted(v:val)==1'))
if bufcount < 2
exe ":q"
else
exe ":bdelete"
endif
endfunction
, а затем
nnoremap <leader>q :call MyClose()<cr>
но я чувствую, что делаю это неправильно.
- Есть ли лучший способ подсчета перечисленных буферов?
- Есть ли лучший способ добиться этой функциональности?