el-getから package.el + use-packageに移行した

Emacsをあまりヘビーに使っていないし、できれば標準のものだけで済ませたいと思ってパッケージマネージャを el-getから標準ツールに移行した。前から考えていたんだけど、MELPAなどに登録されていないパッケージをいくつか使っていてそれで el-get使っていたんだけど、Emacs29から use-packageが標準パッケージ化、さらに package-vc.elも加わり、使い勝手はさておき移行は可能になったので移行してみた。(el-getが開発中の Emacsで動かない問題がありそのパッチが全然マージされないなどの理由もある)

package-vcは以下のようなシグネチャurl に git repositoryなどを渡せばそれをパッケージとして使える

(package-vc-install url rev nil name)

use-packageと組み合わせて使う

以下のような helperを用意し

(cl-defun from-github (&key repo name rev)
  (unless (package-installed-p name)
    (let ((url (format "https://github.com/%s" repo)))
      (package-vc-install url rev nil name))))

:init でインストール済みかをチェックするようにしてそれっぽく使えるようにした

(use-package editutil
  :init (from-github :repo "syohex/emacs-editutil" :name 'editutil)
  :config
  (editutil-default-setup)
  (set-face-attribute 'editutil-clean-space nil
                      :foreground "purple")
  (set-face-attribute 'editutil-vc-branch nil
                      :foreground "color-202"
                      :weight 'extra-bold))

とりあえず標準のパッケージマネジャーだけで必要なものだけはインストールできるようにはなった. まあただインストールが失敗することがあったり、使い勝手が el-getに比べると微妙な部分があるように思える. でもまあそこまでヘビーには使っていないのでひとまずこれでしばらくやってみる