ディスカッション (11件)
Emacs 31のリリースがすぐそこに迫っています。本記事では、既に日常的に使用している私が、特におすすめしたい変更点や新機能について紹介します。
「まだEmacs使ってる人なんているの?」
いるよ。一時期、VSCodeの方がEmacsよりもAI統合が進んでいたから少し浮気したけど、Emacs上でClaudeをうまく動かせるようになってからは、100% Emacsに戻ってきた。80x24のターミナル時代に作られた昔ながらのエディタには、画面上に「膨大な量のコード」を一度に表示するという点で、右に出るものがないんだよね。自分はワイドモニターを使っていて、Emacsで3つの縦分割ウィンドウを開き、それぞれをさらに2つにフレーム分割して、最大6つのコンテキストを同時に開けるようにしてる。そこまでやることは滅多にないけど、2つか3つは頻繁に開いてるよ。4K画面全体がコードで埋まって、しかもそれが「有意義に」埋まっている状態さ。IDEが嫌いなわけじゃないけど、コーディングに使う割合を考えると、画面が不要な情報で溢れすぎている気がしてね。
10年くらい前は、Emacsの将来に少し不安を感じていたこともあった。メジャーバージョンのリリースノートを読んでも、特にワクワクすることがなかったから。でも、treesitterが登場したあたりからプロジェクトが活気づいた感じがある。たぶんtreesitterが全体の起爆剤になったんだろうね。言語コミュニティごとに個別のモードを保守するんじゃなくて、汎用ツールに力を入れるようになったことで、より少ない労力で大きな成果を出せるようになったんだ。
最近のメジャーリリースにはワクワクしてるよ。例えば、前述のClaude統合でターミナル関連の問題はあるけど、諦めるほどじゃないし、ちょっと面倒なだけ。Emacsファンに怒られるかもしれないけど、今のEmacsは他のエディタにようやく追いついてきた感じがある……というか「追いつこうと必死」な状態だね。単に15年の慣れがあるから使い続けているだけでなく、パワーツールとしてのエディタとして真剣に検討する価値があるものとして、再び人にお勧めしやすくなっていると思う。AIがIDEの機能の多くをカバーしてくれるようになったし、Emacs上のテキストボックスでも他のエディタと同じくらい快適に入力できるからね。
今でもデバッガーを使う時だけは時々VSCodeを立ち上げるけど、Emacsほど心地よい体験ができているとは言い難い。とはいえ、デバッグ作業にはある程度の手間がかかるのは当然だし、UIがどれだけ洗練されていてもデバッグという作業自体には時間を割く必要があるから、多少のオーバーヘッドはそこまで苦じゃないよ。
うわ、treesitter文法の自動インストールに、編集可能なxref、ウィンドウレイアウトの入れ替え、フレームのサイドウィンドウとして表示できるスピードバーまで!これらが標準機能としてやってくるなんて知らなかった。ここ数週間「これらが最初からサポートされてたら最高なのにな」とぼんやり考えていたことばかりだよ。夢が叶うこともあるんだな!
これらの改善は嬉しいね。Emacsでずっと不満だったのは、モダンなエディタとして使い始めるまでに必要な設定が多すぎること。Doom EmacsやSpacemacsがそれを解決しようとしているけれど、どちらもVanilla Emacsからはかなりかけ離れたものに感じてしまう。Emacsにいくつかのプリセットが付属していて、たった一行の設定で好みのベース環境に切り替えられたらいいのに。例えば、ほとんどの開発者はデフォルトでtreesitterハイライトとLSPを有効にしたいはず。だから(preset-base-ide-1)みたいなプリセットがあれば、使い始めるために200行も設定を書かなくて済むじゃない?そうすれば、もっと完成された状態からカスタマイズを始められるはず。
Rahulの投稿を読んで、ソースからEmacs 31をビルドしようと意気込んだものの、現実に引き戻されてリリースを待つことにした。彼のEmacs設定に関する記事も好きなんだよね。
他の開発者がどのツールを使おうが気にしないけど、1月に自分の開発用Macを2台とも「VSCodeフリー」にして、すべてEmacsでやるようにした。こっちの方が気分がいい!
何十年もの間、Emacsの設定をいじり回すのに膨大な時間を費やしてきたけれど、ここ数年は設定なしで動く体験にシフトしている。Emacs Lispで自分専用のエージェント型コーディングプラットフォームを書いたりもしたけど、それは.emacsや.emacs.dとは別に管理してるよ。
自分がいかに置いていかれたか実感したよ。
2000年代初頭から.emacsをほとんど触っていない人向けに、誰かEmacsガイドを書いてくれないかな。
テキストファイルで高度に設定可能なEmacsのようなシステムは、まさに現代のLLM向けに作られたようなものだよね。Emacsの経験はあるけど、学習曲線が急すぎて諦めた人は、ぜひAIエージェントと一緒に再挑戦してみることを強くお勧めするよ。エージェントは.emacs/init.elの設定や保守が本当に得意だからね。
どれも素晴らしそうだけど、早く31にアップグレードして、それらの機能を全部忘れて、過去20年間と同じようにEmacsを使い続けたいね。またね!
「まだEmacs使ってる人なんているの?」
いるよ、34年目だけど乗り換えるつもりはない。
Emacsのカーソル移動のキーバインドは、GNU readlineを使っているか、あるいはそのサブセットを実装している他の場所でも広くサポートされているからね。
シェル以外にも、Chromium、Chrome、Safariなど、多くのブラウザの入力フィールド(アドレスバーやテキストエリア)でもうまく機能するよ。Cisco IOS、Juniper Junos、Netscreenのロードバランサーなんかもそうだね。個人的には、CLIでカーソルキーに手を伸ばすよりも、キーボード上でそのままカーソル移動できる方がずっと便利で速いと思う。
唯一の不満は、Firefoxとその派生ブラウザではもう機能しなくなったこと。ずっと前は動いていたんだけどね。なぜその機能が削られたのか皆目見当がつかない。
本格的な仕事をするならテキストエディタが必要だし、Emacsはその中でも最高の一つであり続けている。高速だし、設定も自在で、何より自分の制御下にある。頼んでもいない新しい機能が勝手に追加されて「アップグレード」されることもない。すべてがオプトイン方式だからね。
>Tree-sitterがそのまま動く
ハレルヤ、ありがとう、神様。これでdotfilesからこんなクソみたいな記述を消せるよ。
(コードブロック)
ちなみにこれ、いかにも「建国の父たち」が意図したであろうcshで書いてるよ。