Emacsで作業をしているとあちこちのディレクトリのファイルを開いていってバッファを複数開くことは普通のことでしょう。そんな中、更にファイルを開こうとしてC-x C-fの操作をしようとして指をすべらせてしまいC-x C-cとEmacs終了の操作となってしまい開いていたバッファが消滅してしまって(ファイルが消滅するのではありませんが)「うわ~~~~ん!」となることがたまにありました。

終了の確認

編集中で保存をしていないファイルがある場合は保存するかどうかを確認されるのでC-x C-cですぐにEmacsが終了することはありませんが、編集中のファイルがなくても改めてEmacsを終了するのを確認してくれるような設定はないかと調べてみると次の設定があるのを知りました。

(setq confirm-kill-emacs 'y-or-n-p)	; 終了を確認する

これを設定するとC-x C-cでミニバッファにReally exit Emacs? (y or n)と表示されてEmacsを終了するかどうか確認が入ります。FileメニューのQuitでの操作(下記)でも

quit_emacs

次のように確認メッセージが表示されます。

really_exit_emacs

これで不本意に終了させてしまうことは防げるようになりました。

バッファの記憶

「うわ~~~~ん!」となったのは開いていたバッファが消滅してしまい、再び開いていたファイルを選んでいかなければならなかったからです。Emacs終了時の状態が再現できれば手を滑らせてEmacsを終了してしまっても困ることはないのですが、そのような設定がありました。

(desktop-save-mode t)            ; 終了時のバッファの状態を保存

これを設定すると、Emacsを終了した時のバッファが維持されているだけではなく、フレーム数やデスクトップ上でのウィンドウの位置まで再現されます。(ELscreenのタブまでは再現されません)

この設定をしておけば終了の確認無しで誤ってEmacsを終了させてしまっても、また立ち上げれば(ELscreenのタブ以外の)前の状態を再現できるので作業が少し中断してしまうのを防ぐことが出来ます。