- A command (Bda) for vim that deletes all open buffers. Add this code to your .vimrc
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
Sign in to leave a comment.

