Emacs で前回終了時のバッファ(全て)を復元したい

| コメント(0) | トラックバック(0) | このエントリーを含むはてなブックマーク

最近僕の周りで Eclipse が流行っていて、Eclipse は再起動かけても以前作業していた状態で作業再開出来ると聞きました。

Emacs も session.el などを使えば、ファイル単位で復元出来るのは知ってたんですが、バッファリストの復元はどうするのかさっぱり。

Eclipse 導入って選択肢もあるのですが、環境を整えるのに時間かかりそうだったので Elisp で都合のいい物がないか探したわけです。そうしたら目的の物がありましたよ。

調べてみると windows.el って物と一緒に使うのがベターらしいのですが、僕の場合バッファだけで良かったのでとりあえず revive.el だけ設定してみました。キーバインドなんかが C-x S とかになってて、いちいち保存しなきゃいけないみたいだったんですが、面倒なので Emacs を終了する時に勝手に保存するように変えたらかなりいい案配になりました。

(autoload 'save-current-configuration "revive" "Save status" t)
(autoload 'resume "revive" "Resume Emacs" t)
(autoload 'wipe "revive" "Wipe emacs" t)
(define-key ctl-x-map "F" 'resume)                        # C-x F で復元
(define-key ctl-x-map "K" 'wipe)                          # C-x K で Kill
(add-hook 'kill-emacs-hook 'save-current-configuration)   # 終了時に保存

保存用の情報はホームディレクトリに別ファイルで書き出すみたいです。Emacs22 でも動いたので多分ほとんどの環境で動くんじゃないでしょうか。

これで以前の作業状態に一瞬で戻ることが出来るようになりました。PC 再起動後でも問題ありません。ついでに分割してたのとかも再現してくれます。かなりいい具合です。

トラックバック(0)

トラックバックURL: http://www.hasta-pronto.org/mt/mt-tb.cgi/127

コメントする