vimで内容が空のファイルを保存したら自動で削除する

vim/gvimで開いたファイルを削除したい時があります。
:Explore や shellコマンドでも良いのですが、単純にファイルの中身を全削除して保存したらファイル自体も削除するように設定しています。


以下を .vimrcに追加します。

augroup BUFWRITE_POSTDELETE
  au!
  autocmd BufWritePost * call BufWritePostDelete()
augroup END

function! BufWritePostDelete()
  if search('^.\+$', 'ncw') == 0
    call delete(expand('%:p'))
  endif
endfunction


ファイルの中身に関わらず削除してはいけないファイルがある場合は、特定の拡張子の場合(例えば txt)だけ中身のないファイルを削除するようにした方がよいかもしれません。

augroup BUFWRITE_POSTDELETE
  au!
  autocmd BufWritePost *.txt call BufWritePostDelete()
augroup END