Vimの自動保存、便利ですね。バージョン管理システムが普通になった時代ならではですね。
さて、通常の自動保存の設定は、みんな大好きvim-users.jpにもある通り、
.vimrc
set autowrite
set updatetime=500
autocmd CursorHold * wall
autocmd CursorHoldI * wall
ぐらいで事足りるんですが、読み込み専用やファイル名がない場合に警告が出てうざいです。
なので、関数でラップしてそのような場合は保存を呼び出さないようにしました。
.vimrc
set autowrite
set updatetime=500
function s:AutoWriteIfPossible()
if &modified && !&readonly && bufname('%') !=# '' && &buftype ==# '' && expand("%") !=# ''
write
endif
endfunction
autocmd CursorHold * call s:AutoWriteIfPossible()
autocmd CursorHoldI * call s:AutoWriteIfPossible()
と、.vimrc
に書いてください。
おしまい。