Cask
から El-Get
に移行したのが先月。
(ちなみに Homebrew の Cask は Emacs の Cask を参考にしたらしいです。)
遅ればせながらCaskから移行した。私のinit.elは http://t.co/6EptUvzKPH から辿れるよ。elpa: を付けたほうが良いのかが判断つかない。 / “Caskはもう古い、これからはEl-Get - いま…” http://t.co/suiPgzXdXP
— マスタカ (@masutaka) May 17, 2015
el-get-update とかで頻繁にエラーになるので、調べ始めて文句を言って
いるところ(愚かな奴めw)。
el-getもCaskとは違った面倒くささがあって、考えるのも面倒になってきた。MELPAがあるのにVCSでの指定をオススメするって、意味がわからない。el-get-bundleが言うelpa:がどれを指すのかも分からない #emacs
— マスタカ (@masutaka) June 16, 2015
el-get の分からないところは、主要なパッケージのレシピを自前で持っていること。el-get-bundle 的には VCS で提供されていたら、そちらの指定を奨励しているが、helm でそれをやるとビルドエラーになる。正解が分からない。 #emacs
— マスタカ (@masutaka) June 16, 2015
結果、ようやく El-Get を理解できた気がする。
MELPA と同様、自前でレシピを持っているので、基本それを使えば良い。
El-Get は 2015/6/17 現在 1491 レシピ 持っている。
対する MELPA
は 2538 レシピ
。これは El-Get にとって脅威ではなく、
むしろメリット。なぜなら、El-Get は自前で持っていないレシピは
MELPA のレシピを使うから(後述)。
El-Get のレシピがあるパッケージ
こう書けば良い。el-get-bundle を使わない方法は調べていない。
(el-get-bundle helm)
El-Get のレシピがなく、Git リポジトリがあるパッケージ
el-get-bundle を使う以上、なるべく Git とかの VCS を source にした
ほうが良い(バージョンをロックできるのは VCS を使った時だけだから)。
MELPA から GitHub のリポジトリが見つかったら、このように書けば良い。
(el-get-bundle mori-dev/scratch-log)
ブランチを指定したければ :branch で指定する。ブランチ名は文字列で
ある必要がある。
(el-get-bundle masutaka/egg :branch "freeze-time")
依存関係を付けたければ :depends で指定する。
(el-get-bundle flycheck/flycheck :depends (dash pkg-info let-alist cl-lib))
素の Git だったらこのように書く。
(el-get-bundle :type git :url "git://jblevins.org/git/markdown-mode.git")
El-Get のレシピがなく、Git リポジトリもないパッケージ
MELPA を見に行くようだ。接頭詞 elpa: を付けることで明示することも
可能。
(el-get-bundle elpa:eldoc-extension)
その他
私の init.el です。都度更新されます。ホーム
からも辿れます。
https://gist.github.com/masutaka/8177244
elscreen のレシピに未だに apel の依存が付いていたので、PR 出しました。
https://github.com/dimitri/el-get/pull/2192