auto-save-buffers.el に1行パッチを当てた

その昔、「紙」というwindows用のフリーソフトがあった。今で言うevernoteみたいなスクラップ機能が充実したテキストエディタで、軽快な動作、また多数のファイルを高速に「めくる」機能が特徴的だった。
#いや、今も紙copiと名前を変えて残ってるんだけど、僕はmacに移ったしemacsに慣れてしまったしで使わなくなってしまったのだった。

この「紙」の大きな特徴がファイル保存の概念が「ない」というところで、というかテキストを編集するたびに勝手に上書き保存するようになっている。PCがクラッシュしたりしても大事な長文を失ったりという事故が起きないわけだ。

emacsでもそういう使い勝手が欲しいと思って前探したところ実装している人がいた。http://0xcc.net/misc/auto-save/auto-save-buffers.elというやつで、便利に使わせてもらっている。

ただepa(ファイルをgpgで暗号化するやつ)のような、保存時にプロンプトが出てくるモードとはちょっと相性が悪かった。初回保存のときにepaはどのキーで暗号化するか聞いてくるのだけど、このキーを選んでいる最中にauto-save-buffersがまた発動してフォームが初期化されてしまうのだ。

というわけで自動保存の発動中は一旦自動保存フラグを下ろすように書き換えた。

$ diff auto-save-buffers.el auto-save-buffers.el.orig
52,53c52
< 	    (let ((auto-save-buffers-active-p nil))
< 	      (save-buffer)))
---
> 	    (save-buffer))

バイトコンパイルし直すのを忘れずに。

これを書いている途中で機能強化版を作っているひとを見つけた http://blog.kentarok.org/entry/20080222/1203688543 のでこっちも試してみるつもり。