vim-users.jp

Hack #36: バッファを自動的に保存する

Posted at 2009/07/04
このエントリーをはてなブックマークに追加

問題

毎回:writeでバッファを保存することに疲れました。 自動的に保存されるようにできないでしょうか。

解決方法

以下の内容をvimrcに追加します。

set autowrite
" set autowriteall

autocmd CursorHold *  wall
autocmd CursorHoldI *  wall

解説

自動的に保存を行うタイミングは色々とあります。

  • :!:next<C-]>などのコマンドが実行されるとき。
  • ユーザーが暫く操作を行っていないとき。

前者については'autowrite'を有効にすることで対応できます。 また'autowrite'では一部のコマンドについては自動保存を行わないのですが、'autowriteall'を有効にすることでそのようなコマンドに対しても自動保存が行われるようになります。ただしそのようなコマンドはうっかり自動保存されては困るケースが考えられるためオプションが分離されています。有効にする場合は:helpを読んで効果をよく理解してからにしましょう。

後者についてはCursorHold/CursorHoldIというイベントがあり、ユーザーが暫く操作を行わなかったときに発行されます。これを利用して変更されている全てのバッファを保存すれば対応できます。 なおCursorHold/CursorHoldIの発行タイミングは'updatecount'で指定できます。

参考資料

kana

もどる
blog comments powered by Disqus