はじめに

spacemacs を使い半年、限界を感じたので emacs の設定を 0 から行ないました。 その移植に思い立った理由を述べていきたいと思います。

嫌なとこたち

master の更新が止まっている

デフォルトのインストール先が master になっていましたが(現在は devleop になっていました)、最終更新は 2018 年であり、最新の機能が欲しい場合は devlop ブランチにする必要がありました。 spacemacs を使っている人はみなさん develop を使用していたようで、issueでも問題になっていました。 ですが、develop の問題もあります。

spacemacs の変更に振り回される

上記のことから、develop を使用していたのですが、いかんせん更新に振り回されます。develop を更新したらキーバインドが変わった、パッケージでエラーが出たなんてよくあります。 修正の PR がマージされるまで動かないので、しょうがないから PR の変更をローカルに反映したりしたりと、色々と更新時の面倒が多いです。

原因特定が面倒

どのレイヤーが原因なのか、どの設定値が原因なのか調べるのが難しいというのがあります。mac であまりにもフリーズするので調べてみたら、dotspacemacs-mode-line-unicode-symbolsnil にしたら直るという解決策だったことがあります。spacemacs 固有の問題なのか、それとも拡張側の問題なのか、これの線引きが難しく調べるのに難航するというのが結構しんどいです。

重い

なんか重いです。結局原因は不明でしたが、特定のモードによってはフリーズすることがよくあり、issue でも似たような報告がちらほらあります。 spacemacs は所謂おらおら設定集なので、余計な設定も結構入っています。そのため、自分が必要なものだけ入れたときに比べ、余計な処理が走りやすいんだと重います。 ですが、滅茶ストレスです。

拡張性

spacemacs には様々なオプションが用意されており、自由に拡張することができます。 しかし、拡張するといっても spacemacs の範囲という感覚です。もう一歩先に行こうとするとかなりつまずきます。 せっかく設定しても spacemacs によって上書きされたりして反映されなかったり、オプションが効かなかったりと、できないことが多いです。 僕はこれが嫌で乗り替えました。オラオラ設定は楽しかったですが、何でもできるという emacs らしさが spacemacs の上でしか成り立たなかったので、嫌になりました。

よかった所

ファイルから自動で適した layer(簡単にいうと設定集)をダウンロードしてくるのには痺れました。これは本当に素晴らしいと重います。 新しい拡張子を開くたびに、拡張を調べてインストールするというのが面倒な人、初めて emacs を触る人、emacs の設定をするのが面倒な人は、spacemacs がとても刺さると思います。 また、オラオラ設定のため、いきなり emacs が vscode になったかのような錯覚を受けるぐらい初期設定が充実しています。 あまり、設定を凝ったことがない人は是非とも試してみてほしいです。

移植にあたって参考にしたもの

spacemacs から emacs に移植した際に参考にしたもの、必須と思われた拡張を最後に記して終わりたいと思います。

emacs-awesome

有名なライブラリがのっていますが、いかんせん量多いので全部見るのは現実的じゃないですが、こういうことができるライブラリというのはどういうの?というのが分かりやすいので、参考になりました。

バニラの設定に関するもの

とても助かったのがこれですね。 エデイタの設定に関することが書かれています。少し古いですが、入りとしてはとても助かりました。

移植にあたって必要と感じたライブラリ

筆者が spacemacs から移行するにあたって無いと不便に感じたものを書いていきます。

  • use-package: パッケージ読込みのマクロ。最近は leaf とかあるので、そっちの方がいいかも?
  • ivy: あいまい検索を行なえるようにします。一番好きなツールです。
  • which-key: なんのコマンドがあるかわかるやつ。覚えの悪い僕には必須です。
  • magit: git 管理の重鎮。これがあるから emacs 使ってます。
  • lsp: emacs の LSP です。正直これと言語の major-mode さえ入れれば開発は困りません。LSP すごいです。
  • company: 補完ライブラリ。何か入れないと不便ですよね。
  • flycheck: linter ツール。これが無いと目隠しでコードを書くようなものです。

終わりに

spacemacs もいいところがあります。しかし、emacs の設定をゴリゴリする楽しさに気付いただけです。 そんな筆者が言えることは、spacemacs を始めるのも辞めるのも軽い気持ちでやるのがいいです。