すべてを保存

3分LifeHacking:テキストを安全に投稿する
http://www.itmedia.co.jp/bizid/articles/0608/01/news004.html

これと同様のことがemacs+firefox+mozexでできるのだが、mozexの問題点は、/tmp/に作られてしまうことだ。つまり、/tmpはrebootしたりすると消えてしまうため、上記エントリでの「保存ができる」という利点が一時的でしかない。恒常的に残しておけばあとでなにかに使えるであろう。

さらに、ブラウザだけでなく他の文書にも拡張して、emacsで書いたすべてのものを残すとどうだろう。あとで検索可能にするというhowm的な考えをすべての文書でできるのだ。名付けてsave-everything。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; save everything
;;
;; 参考
;; http://homepage3.nifty.com/oatu/emacs/misc.html

(setq save-everything-dir "~/lines/save-everything/")

(add-hook 'after-save-hook
          (lambda ()
            (save-excursion
              (let ((oldbuf (current-buffer)))
              (setq filename (expand-file-name (format "%s/%s/%s" save-everything-dir (format-time-string "%Y/%m/%d") (file-name-nondirectory buffer-file-name))))
              (setq dir (file-name-directory filename))
              (unless
                  (file-exists-p dir)
                (make-directory dir t)
                )
              (if
                  (file-exists-p filename)
                  (delete-file filename)
                )
              (set-buffer (get-buffer-create filename)) ;; バッファ切替え
              (insert-buffer oldbuf)
              (setq start (point-min))
              (setq end (point-max))
              (write-region start end filename nil 'hoge nil)
              (kill-buffer (current-buffer))
              ))))

ほとんど同じファイルでも日付ごとに分けられた別のディレクトリにsaveされる、まさに富豪的な仕様です。

てか、ぼくは全然まったくemacs-lispについて詳しくないのでかなり間違っていると思うので突っ込み大歓迎。

あとC-c C-SでsaveするとMark Setとかmini bufferに表示されちゃうんだよね。これはなくしたい。

追記)
てなことしてたら、mozexがちゃんとテキストエリアに書き込んでくれなくて、これがさっそく役に立ちました。

追記2)
さて、これをrsyncでサーバに送って、、、てなことを考えていたら、subversionなどのほうがいいような気もしてきた。
自動でsubersionにcommitする感じ。