eglotというlspのクライアントを使いたくてEmacs 26.1を入れた。なんかめっちゃ苦労した。辛いのでvscodeとかに脱出したくはあるが、慣れ親しんでいて完全脱出は無理かもしれない。
インストール
最初はEmacs 25.3/26.1 を EMP版で快適に使う - Qiitaを参考にEMP版を使おうと思ったのだけど、なぜか外部ディスプレイだとフォントが薄くなってしまう問題に遭遇し断念(ちなみに https://hatebu.me/entry/mojavefont はやっています)。仕方ないので Emacs-25.3/26.3(Mojave, Catalina, BigSur)/27.2/28.x にインラインパッチをあてて使う(macOS) - Qiita の野良ビルドを参考にし、26.1のGoogle IME用のやつを利用してインストールした。
ビルド時になぜかlibxml2のヘッダファイルがないとか言われたが、これについては macOS Mojave にアップデートしたら stdio.h がないって言われた - Qiita のようにMojaveにアップデートしたばっかりだったからっぽかった。
popwinの問題
インストールしてみたところ、なぜかfind-fileで開くファイルが今いるバッファでなく別バッファになってしまったり、diredを開こうとするとpopupで開いてしまったりと謎現象が起こってしまった。
いろいろ調べてみると大分昔にEmacsでdisplay-buffer-functionというのがobsoleteになっていて、それに対して https://github.com/m2ym/popwin-el/issues/42 でpopwinが対応して、popwinの設定方法が変わっていたらしい。僕のpopwinの設定は昔のままになっていたため、何かおかしなことになっていたっぽい。
最終的に https://github.com/shibayu36/emacs/commit/f096b0ef2698b13a9afa75df588d40695e26b18e のように直したら直った。
まとめ
とりあえずこれで最低限Emacs26.1は使えるようになったっぽい。また使い続けているとおかしいことが起きるだろうけど、まずはこれで頑張ってみる。
参考
- eglot
- Emacs 25.3/26.1 を EMP版で快適に使う - Qiita
- https://hatebu.me/entry/mojavefont
- Emacs-25.3/26.3(Mojave, Catalina, BigSur)/27.2/28.x にインラインパッチをあてて使う(macOS) - Qiita
- macOS Mojave にアップデートしたら stdio.h がないって言われた - Qiita
- Don't use display-buffer-function · Issue #42 · emacsorphanage/popwin · GitHub
- https://github.com/shibayu36/emacs/commit/f096b0ef2698b13a9afa75df588d40695e26b18e