savekill.elリリース - Emacsの突然死に備えて
savekill.elをリリースしました。
動機
最近、なぜかよくわかりませんが、Emacsが突然死することありますよね?
あまり使いこんでない人はあまり経験がないかもしれませんが、ヘビーユーザーにとっては日常茶飯事です。
不安定すぎて落ちまくるほどではないですが、僕のところでは数日に1回のペースで落ちてしまいます。
Emacs以外を使っていると、ソフトウェアの突然死の恐怖はよくわかると思います。
「保存してなくて、今までの作業がパーになった!」
誰もが一度はそんな経験があるでしょう。
もちろん、そこは我等がEmacs、ちゃんと防衛線は張っています。
Emacsには自動セーブ機能があり、一定時間以上保存していないと、一時ファイルに保存する仕組みになっています。
そのため、Emacsが落ちたとしても、当該ファイルに対し M-x recover-file を実行すれば、ほとんどの作業を取り戻すことができます。
あるいは、 auto-save-buffers.el を使うことで、手で保存をする必要をなくすことすらできます。
しかし、これでも障害対策は不十分だと僕は思っています。
大量のテキストをC-wでカットすると、当然バッファ(ファイル)からは、大量のテキストが失われます。
カットしたテキストはキルリングに格納されています。
もし、C-yで貼り付けする前にEmacsがお亡くなりになったら…
当然目もあてられません。
そこで、キルリングにも防衛線を張っておくのが、このsavekill.elです。
概要
savekill.elは、キルリングをディスクに保存・復元する小さなEmacs Lispです。
実質10行に満たないサイズです。
C-wやM-w等、テキストをキルリングに入れる動作をしたときに、自動的に保存されます。
そして、Emacs起動時にキルリングの内容は復元されます。
これならば、万一の時も安心ですね!
インストールと設定
拙作auto-install.el(導入記事)を導入すると、
M-x install-elisp-from-emacswiki savekill.el
でダウンロード、保存、バイトコンパイル、ロードまでできます!
ブラウザで見るには↓へどうぞ。
http://www.emacswiki.org/cgi-bin/wiki/download/savekill.el
そして、以下の設定を.emacsに加えてください。
(require 'savekill)
参考リンク
http://d.hatena.ne.jp/tomoya/20110217/1297928222 では、recentfのリストを一定時間後に自動保存することで、突然死に備えています。
Emacsの突然死を憎むのは勝手です。
しかし、そもそもバグのないソフトウェアは存在しません。
突然死は起こるものとして防衛線を張っておくことこそが、我々ユーザにできる現実的な行動だと考えています。
返信
rilさん
きちんとキルリングは保存されるのですが、起動時に、*Compile-Log*バッファにWarning: ad-Orig-kill-new called with 3 arguments, but accepts only 1-2と表示されるようになって しまいました。
こちらでは再現しませんね。他のパッケージがkill-newをアドバイスしてたりしませんか?
id:tkf41 さん
anything.elのadaptive-historyのバグの可能性があります。
使っているならば、Emacs起動時に
rm ~/.emacs.d/anything-c-adaptive-history
で削除してください。
最新のanything.elでも起きますか?