EmacsでもIntelliJのように、フォーカスが外れたときに
自動保存ができるelispがありました。
Save Emacs buffers when they lose focus
特徴
- Emacsから別のアプリケーションに移ったときや、
switch-to-buffer
やother-window
でバッファ切り替えたときに、元のバッファが自動的に保存されます。 -
auto-save-buffers
のように、アイドル時に自動保存することもできます。
設定
パッケージのインストールが済んでいれば、以下の1行だけでOKです。
(super-save-mode +1)
カスタマイズ
ソースを見ると3つdefcustomがありました。
defcustom | 説明 | デフォルト値 |
---|---|---|
super-save-triggers | super-save-commandを起動するコマンド | '("switch-to-buffer" "other-window" "windmove-up" "windmove-down" "windmove-left" "windmove-right") |
super-save-auto-save-when-idle | アイドル時に自動保存する | nil |
super-save-idle-duration | アイドル時自動保存の間隔(秒) | 5 |
設定例
use-package
使用時の設定例を以下に示します。
10秒アイドル時に自動保存する設定になっています。
(use-package super-save
:config
(setq super-save-auto-save-when-idle t
super-save-idle-duration 10)
(super-save-mode +1))
当初、アイドル時の自動保存の設定が動かなかったのですが、
setqを先に書いて、(super-save-mode +1)
を一番最後に持ってくると
期待通り動作しました。