:ensure tを:straight tにおきかえるところから、straight.elを使ってみよう。MELPAでもgithubでもどこのパッケージも取得できるよ
自分は use-package
で、emacsのパッケージ管理および設定管理をしている。
use-packageは、遅延ロードとかを意識しなくてもよしなにやってくれるし、なにより :ensure
キーワードを使うことで、MELPAからダウンロードも自動でやってくれるので、パッケージの取得と設定を一元管理することができるのがよい。
ただ、そんなuse-packageだけど、不満点がひとつあり、 package.el
をラッピングしてるだけなので、当然のことながら package.el の対象のサイトである、elpa, melpaなどからしかパッケージを取得することができない。
なので、githubで管理されていて、melpaのレシピが作成されていないものとか、melpaにあるんだけどバグがあってフォーク版がgithubにあるとか、そういったものを管理するのがめんどくさい。 自分でダウンロードして、load-pathに配置して、という作業が必要になってしまうのだ。
かといって、そのためにcask使ってみるのもなあ。。。と思っていた。quelpaとかも使ってみたのだけどイマイチぱっとしなかったり。
そんななか、straight.elの存在を知って使ってみたのですが、これがけっこういいかんじ
何がいいって、use-packageのキーワードに追加してくれるので、何も考えなければ、これまで :ensure t
と書いてたところを :straight t
と一括置換するだけで、とりあえず乗り換えが完了するのです。
(use-package dash :straight t)
こんな感じで、あまり移行を意識しなくてすむのがよい。
melpaで管理されているもののフォーク版を使いたいものの例としては、key-chordがあります。
これも、 :straight
キーワードをちょっと変えて取得先を指定するだけなので、非常に簡単に書けます。
(use-package key-chord :straight (:host github :repo "zk-phi/key-chord" :branch "master"))
正直、ここまで意識せずに移行できると思わなかったので、なぜ早く乗り換えなかったのか悔むばかり。以前からstraight聞いてたけど、readme.mdがちょっと読みにくくて、どこがキモかよくわからなかったのよね。。。まあ、だからこそこのエントリを書くにいたったのですが。