我希望使用一个快捷方式 (
我目前正在使用以下函数:
,q
) 来删除我不需要的缓冲区,但当当前缓冲区是唯一列出的缓冲区时,我想使用相同的快捷方式来退出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>
但我感觉自己做得不太对。
- 有没有更好的方法来计算列出的缓冲区?
- 有没有更好的方法来实现这个功能?