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)




使い方

特になし!通常通りEmacsを操作してください。空気のようなEmacs Lispです。


参考リンク

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でも起きますか?