Emacsの管理


昨日、.emacsに設定を追加したら起動時にエラーを吐いたので、
それを直そうとしたのだけど、直す過程で誤って.emacs内のコードの大半を消してしまった。
普段使っているelisp群は全部Mercurialで管理しているのだけど、
よく考えたら.emacsだけはバージョン管理されていなかったので、結構焦った。
そのときはEmacsが自動的に作成するバックアップのおかげで助かったからよかったんだけど、
今では.emacsだけでも200行ぐらいはあるので、いい加減、.emacs自体もバージョン管理することにした。
方法はいろいろあるけど、単純に.emacs自体の記述をシンプルにした。

;; subdirs.el
(let ((dir (expand-file-name "~/emacs-lisp-elc")))
  (if (member dir load-path) nil
    (setq load-path (cons dir load-path))
    (let ((default-directory dir))
      (load (expand-file-name "subdirs.elc") t t t))))

;; init 
(load "~/emacs-lisp-src/conf/emacs-init.el")

元々記述してあった設定はemacs-init.elに移してこちらをMercurialで管理するようにしてこれで完了。
ついでにsubdirs.elを知らなかった頃にload-file使っていた箇所やフルパスでloadしていた箇所も全部直した。