デフォルトの Emacs は test~ ってな名前であちこちにバックアップファイルを作って鬱陶しい。backup-directory-alist で保存場所を指定するのもいいのですが、これだと元々のファイルがどこにあったか分からず不便。そこで
(setq backup-by-copying t) (defadvice make-backup-file-name (around modify-file-name activate) (let ((backup-dir "~/backup")) ;; 保存ディレクトリ (setq backup-dir (expand-file-name backup-dir)) (unless (file-exists-p backup-dir)(make-directory-internal backup-dir)) (if (file-directory-p backup-dir)(let* ((file-path (expand-file-name file)) (chars-alist '((?/ . (?#))(?# . (?# ?#))(?: . (?\;))(?\; . (?\; ?\;)))) (mapchars(lambda (c) (or (cdr (assq c chars-alist)) (list c))))) (setq ad-return-value(concat backup-dir "/"(mapconcat 'char-to-string (apply 'append (mapcar mapchars file-path)) "")))) ad-do-it)))という設定を .emacs.el にすると、ファイル名を絶対パスっぽい名前(/の代わりに#)にして、まとめて一箇所(~/backup)にバックアップされます。
/home/sawa/file.txt → #home#sawa#file.txt
C:\doc\file.txt → c;#doc#file.txt
ちなみに /tmp 以下のファイルはバックアップされない? 謎。
この elisp は大昔にMeadow掲示板で流れていた物です。
07:08 pm | コメントする |
1. jpwatchshop777 (Website) 2013/06/30 16:23
平成の大合併の影響で岩見沢になったところです(あえて何処か言わないw)
1日目というか昨日は来た1時間後くらいに
外でバーベキューして。そりゃ食べ物は美味しかったです。
2日目は午前中に柏餅を食べてこれも美味しかったです。昼飯はなんと
カレーうどんでした。カレーうどんなんてお店か給食でしか食べたことが
なかったのでよく作れるなぁといとこの親^^