Profile image for Ian Lewis IanLewis
A command (Bda) for vim that deletes all open buffers. Add this code to your .vimrc
Language
VimL
Tags
buffer delete vim

Vim Bda Command to Delete All Buffers

1 " Bda - Delete all open buffers. 2 3 command! -nargs=0 -bang Bda 4 \ :call BufDeleteAll('<bang>') 5 6 function! BufDeleteAll(bang) 7 let last_buffer = bufnr('$') 8 9 let n = 1 10 while n <= last_buffer 11 if a:bang == '' && getbufvar(n, '&modified') 12 echohl ErrorMsg 13 echomsg 'No write since last change for buffer' 14 \ n '(add ! to override)' 15 echohl None 16 return 0 17 endif 18 let n = n+1 19 endwhile 20 21 let delete_count = 0 22 let n = 1 23 while n <= last_buffer 24 if buflisted(n) 25 silent exe 'bdel' . a:bang . ' ' . n 26 if ! buflisted(n) 27 let delete_count = delete_count+1 28 endif 29 endif 30 let n = n+1 31 endwhile 32 33 if delete_count == 1 34 echomsg delete_count "buffer deleted" 35 elseif delete_count > 1 36 echomsg delete_count "buffers deleted" 37 endif 38 39 endfunction

Comments