Vim でファイルが存在しないバッファの削除
例えば、vimshell や unite.vim などといったファイルが存在しないバッファの削除を行います。
[ソース]
function! s:delete_no_file_buffer() let list = filter(range(1, bufnr("$")), \ 'bufexists(v:val) && !filereadable(expand("#".v:val.":p"))' \ ) for v in list execute "bw ".v endfor endfunction command! -bar DeleteNoFileBuffer :call s:delete_no_file_buffer()
expand でバッファ番号からパスを取得して、filereadable でファイルが存在するかのチェックを行っています。