理系学生日記

おまえはいつまで学生気分なのか

Cask から el-get に移行した

重い腰をあげて、Emacs の elisp 管理を Cask から el-get に移行しました。

移行の背景

このあいだ久しぶりに Windows PC を買って、現在進行形で環境設定を行っています。 そこで引っかかったのが Emacs の設定移行でした。

もともとぼくは Cask で elisp の管理をしていたので、コマンドプロンプトで cask って打てば必要な elisp がインストールされるはずでした。 しかしそうは問屋が許さず、なんか Python のシンタックスエラーが出てきます。 よくよく見ると Cask は Python 2 で動いているっぽくて、2018 年になって Cask 用に Python 2 をインストールするのもアレなので、el-get への移行を決めたのでした。

el-get への移行

こちらのエントリに詳細に説明されているので、興味ある方はそちらを読むのが一番かなと思います。

なので、以下はぼくの感想でしかありませんが。

el-get への移行はそんなに難しくなくて、とりあえず init.el

(add-to-list 'load-path (locate-user-emacs-file "el-get/el-get"))
(unless (require 'el-get nil 'noerror)
  (with-current-buffer
      (url-retrieve-synchronously "https://raw.githubusercontent.com/dimitri/el-get/master/el-get-install.el")
    (goto-char (point-max))
    (eval-print-last-sexp)))
(add-to-list 'el-get-recipe-path "~/.emacs.d/el-get-user/recipes")

とか書いておいて、Cask ファイルに書いた elisp 群を

(el-get-bundle auto-complete)
(el-get-bundle auto-highlight-symbol)
(el-get-bundle atom-dark-theme)

etc. etc. etc.

というように書いておけば、いいかんじでローカルにインストールしてくれます。 (それも面倒な方は、上記のエントリで紹介されている el-get-cask あたりを使えばもっと楽ができそうです)

ここでは elpa とかからインストールしてくれてますが、パラメータを渡しさえすれば、emacswiki や github から直接インストールすることもできるようです。 ぼくが使っている elisp はすべて elpa にあったようで、指定する必要もありませんでした。

おもしろいのが (el-get-bundle auto-complete) するタイミングで自動的に init-auto-complete.el を読み込んでくれることです。 これにより elisp とそれに紐付く設定がすごく分かりやすくなりました。 また、別に init-<package-name>.el というような別ファイルに設定を書くまでもないような簡単なものであれば、

(el-get-bundle anzu
  (global-set-key (kbd "M-%") 'anzu-query-replace)) ; anzu version of `query-replace'.

という形で、直接書くこともできちゃいます。

設定ファイルというと init-loader でも管理しているので、その使い分けをどうするか悩みました。 が、init-loader 側での管理はソース記述のための設定など複数の elisp が関係するような場合にし、他のものは el-get という使い分けでしばらく試そうかなと思います。