前置き
VimやNeoVimをお使いの皆さんの中には、Emacsに興味を持たれている方もいるでしょう。以下の図は、Emacsに興味を持った人がどうなるかという状態変化(?)を表したものです。この図を描いたのは私ですが、@takeokunnがtwitterで広めて一部界隈で反響を呼びました。
ユーザ数においては(Neo)Vimに負けているEmacsですが、クローンではない本物のorg-modeなど、他のエディタにはない魅力があるのも事実です。
衆知の通り、Emacsは敷居が高いと言われています。この問題に対する解決策として、使いやすいEmacs設定のリポジトリを共有するEmacs distributionという方法がコミュニティでは取られてきました。また、Emacsについての解説としてはMastering Emacsが有名で、Ayanokoji Takesiさん、およびUSAMI Kenta(@tadsan)さんによる日本語訳もされています。
どんなEmacs distributionがこれまで人気だったかは、たとえばPerplexityに"what are some popular Emacs distributions?"と聞けば、以下のようなものが挙がってきます。どれも数年以上続いている、有名なプロジェクトです。
Emacs distributionには、大きく分けて以下の二種類のものがあります。
- (1) IDE相当のパッケージ・設定が入っている高機能なもの。例: SpacemacsやDoom Emacs。
- (2) デフォルトEmacsの不自然さを解消する程度にとどめたminimalistic(better defaultsあるいはsane defaultsともいう)なもの。
後者(2)の場合、ユーザはEmacsの基本的な概念を習得しながら、各自に必要な設定をさらに追加していくことが求められます。使えるようになるまで少し期間を要しますが、フレームワーク(distribution)独自の体系に振り回されないので、長期的にはpay offすると言われています。
本題
最小のEmacs configurationとして最近話題になっているのが、Protesilaos Stavrou氏のEmacs: a basic and capable configurationです。今年末または2025年にEmacsに入門したい人には、これがおすすめです。
その他の選択肢も検討したい人は、以下のRedditを見るといいでしょう。
(追記)Vimユーザ向けのEmacs初期設定としてemacs-kickというのも出たようです。こちらも見てみるといいかもしれません。
(追記2)上記設定はどれも、Emacs標準のuse-packageを使っています。use-packageを使った設定方法については、下記を参考にしてください。
use-packageの代替としてleaf.elを薦める人もいます。leaf.elは作者が日本人であるという特徴がありますが、内部実装・スタイルの違いを除いて機能面でuse-packageとleafの間に大きな違いはなく、どちらを使ってもEmacsでできることは全く同じです。
ほとんどのパッケージでは、設定のサンプルコードにおいてuse-packageが使われており、特にEmacsの初心者は新しいパッケージを導入するときにuse-packageのほうが迷わなくて済むと思います。一方、日本語のブログではサンプルコードとしてleafが使われている例も見られます。日本人Emacsユーザの中でも熱量の高い、EmacsやLispの思想に対するこだわりが強い人々との団結・連帯感を重視するならleaf.elを選択してもいいかもしれません。「こだわりが強い」という言葉を悪口だと思う人にはuse-package、褒め言葉だと思う人にはleaf.elがおすすめです。
use-packageよりleaf.elのほうがEmacsの起動が速くなるという神話がありましたが、use-packageを使った設定の書き方が最適でない(起動時間をなるべく速くするような書き方になっていない)のが原因です。use-packageでEmacsの起動時間を重視する場合は、上の記事を参考にしてください。
※そもそもEmacsの起動時間は(速いにこしたことはありませんが)あまり重要ではありません。有名なt-wadaさんがvim-jpラジオ#27で述べられているように、(人それぞれの使い方にもよりますが)一度起動したEmacsはめったに終了・再起動しないからです。Emacsの起動時間が重要という価値観自体が、leaf.elを賞賛しemacs-jpを盛り上げるために作られた迷信だと思います。