ELPA で elisp を管理

「おれはEmacsをインストールしたと思ったら Emacs24 をインストールしていた。な、何が起こったかわからねーと思うが・・・」
「いいえ、わかります。」

気づけば Emacsbrew install で Emacs24 になっていたわけです。これまで何年も .emacs.d 以下に適当に集めてきた elisp を放り込んでは init.el をちまちまといじる日々でしたが、そういえば 24 には ELPA (Emacs Lisp Package Archive) が標準搭載されるとか聞いたなーと思いまして、年末のドラクエバージョン1.2に伴う怒濤のレベル上げや 忘年会、大掃除や新年会などで疲れた体を鞭打ち、elisp を整理する作業をしています。

ELPAPerl で言うところの CPANRuby で言うところの rubygemsvim で言うところのはしらないけど、それっぽい何かです。使い方は簡単で

M-x list-packages

とすると elpa.gnu.org から最新のパッケージリストをとってきて

http://dl.dropbox.com/u/2586384/image/20130107_185856.png

こんな感じで表示してくれました。あとはパッケージ名を選択して install を選択すると、~/.emacs.d/elpa 以下にパッケージがインストール & バイトコンパイルされて、インストール情報はメタデータとして管理されるという仕組みになっています。これは便利。

Emacs 24 の初期状態ではパッケージ提供元が elpa.gnu.org のみでやや数が少ないので

(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))
(package-initialize)

と設定して増やしてあげると良いでしょう。

パッケージ (elisp) ごとの設定までは自動で面倒で見てくれるわけではないので、例えば color-theme をインストールしたら相変わらず color-theme について init.el に書く必要はあります。

;; init.el
(color-theme-initialize)
(color-theme-ld-dark)

こんな感じで。なお、このとき設定は上記の package-initialize 以降に書くこと。package-initialize で ELPA で読み込んだものの初期化 (おそらく load-path への追加等々) が行われるようですので。

そんなわで野良から拾ってきたものを ELPA にあるもので置き換えるのを現実逃避気味にコツコツとやっています。

あ、そうそう、明けましておめでとうございます。2013年も新年早々 Emacs の話題と Sublime Text 厨などからすれば若干の加齢臭が漂う勢いですが、本年もよろしくお願いいたします。