straight.el(Emacsのパッケージ管理)

これまで Emacs でのパッケージ(マクロ)の管理には以下のような方法を使ってきました。

  • package.elpackage-install 命令でインストールするか手動でインストールする。
  • パッケージの設定は use-package でおこなう。

この二つを straight.el というパッケージ管理用のパッケージでおこなうように変更しました。変更した主な理由は、straight なら

  • 利用する設定をしておくと、インストールも自動でおこなってくれる
  • github で配布されているパッケージもインストールできる

という理由からです。

本当は、日本人の方が作成している leaf.el の方がもっと機能が豊富で便利そうでしたが、私は上手設定できなかったので仕方なく straight の方にしました。ただ、straight に変えたといっても、straight で use-package を利用するという方法にしているので、パッケージの設定方法はこれまでの use-package とほとんど変わりはないです。

とりあえず使えるようになりましたが、一つ問題が...

straight ではパッケージをインストールしておくフォルダを Dropbox で共有できないようです。これまではインストールしたパッケージは Dropbox のフォルダに入れ、どのパソコンでも共有できるようにしていました。そうすればいちいちパソコンごとにパッケージをインストールする手間がはぶけるので。ところが、同じことを straight でやろうとすると、異なるパソコンで Emacs を起動するたびにパッケージの build をおこなう動作になってしまいます(要するにインストールしなおす動作になる)。

これでは困るので、straight でパッケージをインストールしておくフォルダをパソコンごとに変えるという設定にしました(straight-base-dirの値をパソコンごとに変えるという設定)。いまいちな対処方法のような気がしますが、他にいい方法を思いつかないので仕方ないです。

私はもう25年くらい Emacs を利用しているので、Emacsには慣れているほうだと思いますが、最近、Emacs の新しい機能やパッケージを使うのが難しいなあと感じるようになってきました。昔は新しいものでももっと簡単にインストールできていたような気がします...単に年をとったせいかもしれませんが、今は昔と比べて選択肢がずっと多くなっていることが原因かもしれません。パッケージ管理方法も、require 命令を使いながら自分で設定を書いていく方法に加え、use-package を使う方法、もっと新しい leafstraightCask を使う方法など本当にいろんな選択肢があります。しかも、leafstraight などは非常に機能が豊富なこともあり、使いかたがややこしいです。昔のように選択肢も少なく、できることも限られていたほうが、使うのはむしろ容易だったかもしれません。

また、昔は Emacs やそのパッケージの使い方を質問できるメーリングリスト掲示板がたくさんありましたが、今はそういうものはほとんどなくなってしまったためかもしれません(今だって、Twitter などでは質問できたりするのでしょうが)。それに、Emacsやそのパッケージについて解説するインターネットのサイトもまとまって情報を提供するところは減ってしまったような気がします。

ちなみに、パッケージ管理の方法を変更しようと思ったのは、chatgpt関連のパッケージを利用しようと思ったのですが、それが melpa などで配布されていないため package-install などのコマンドでインストールできないからです。