世界を動かす技術を、日本語で。

Emacs 31が間もなく登場: 私が日々使っている変更点

2026年6月18日原文(rahuljuliato.com)

概要

  • Emacs 31 で追加予定の注目機能を詳細に解説
  • tree-sitter の大幅な利便性向上と新しいmarkdown-ts-modeの紹介
  • Eglotcompletionwindow管理 など多岐にわたる改善点を列挙
  • すべて 標準機能 で追加パッケージ不要、現時点(2026年中頃)での利用体験をベースに解説
  • 開発中のため正式リリース時に仕様変更の可能性あり

Emacs 31で追加される「新しいバッテリー」たち

  • Emacs 31 は現在プレリリース段階、主にemacs-31ブランチやmasterからビルドして日常利用中の体験を共有
  • 外部パッケージ不要、すべてコア機能として追加予定
  • 設定ファイルには ; EMACS-31 コメントで新機能を区別、リリース時に再確認予定
  • 本記事は主に「まだリリース前の新機能」を先取りプレビューとして紹介

tree-sitterの劇的な進化

  • tree-sitter 対応メジャーモードの切り替えが簡単化
    • treesit-enabled-modesをtに設定するだけでtree-sitterバリアントへ自動切替
    • treesit-auto-install-grammarにより必要な文法ファイルのダウンロードとビルドを自動化
  • 主要言語(TypeScript, TSX, Rust, TOML, YAML, Dockerfileなど)の文法情報は各モード内蔵
  • 設定ファイルから文法指定の冗長な記述を削除可能、保守性向上
  • アーキテクチャ間でEmacsディレクトリを共有する場合は注意
    • 自動インストールされたgrammarはアーキテクチャごとに分離されないため、x86_64とarm64でバイナリ競合の可能性
  • tree-sitter関連の改善は今後も進行中
    • Yuan Fu氏らによる多言語対応・使い勝手・パフォーマンス向上の継続的な開発

markdown-ts-mode(実験的機能)

  • Emacs 31標準搭載のMarkdownモード (markdown-ts-mode)は筆者が原案を提案、Stéphane Marks氏と共同開発
  • Orgモードに近い操作感
    • 見出し移動・折りたたみ・構造間移動など、Orgユーザーが違和感なく利用可能
  • フェンスドコードブロックのライブ着色
    • コードブロック内は各言語の本物のメジャーモードで構文ハイライト
    • 例: ```elisp ブロックはEmacs Lispモードのハイライト、編集コマンドも有効
    • ただし補完機能は未完成部分あり
  • インライン画像表示
    • Markdown内の画像リンクがバッファ内で即座に表示、ドキュメント性向上
  • 現状は実験的
    • auto-mode-alist未登録、M-x load-library RET markdown-ts-modeで手動ロード
    • フィードバック歓迎、安定化に向けて開発中

EglotのMarkdownドキュメント表示(実験的)

  • EglotがLSPドキュメントをmarkdown-ts-modeでレンダリング可能に
    • markdown-ts-view-modeで整形表示、追加パッケージ不要
    • こちらも現状はopt-inの実験的機能
  • eglot-code-action-indicationsはノイズが多いため無効化推奨
  • eglot-events-buffer-size関連は今後整理予定

eldoc at point

  • eldocがポイント下のシンボルのヘルプを自動表示
    • eldoc-echo-area-prefer-doc-bufferと組み合わせて未知のコード探索が容易

スマートな補完体験

  • completion-eager-updatecompletion-eager-display で入力と同時に補完候補をリアルタイム表示
  • minibuffer-visible-completions を'up-downに設定で矢印キーで候補移動が直感的に
  • icomplete も改良(bug#75784由来)
    • 縦型表示やプレフィックスインジケータ対応、設定の互換性ブロック削除が可能に

ウィンドウレイアウト操作の新コマンド

  • ウィンドウ配置の入れ替え・回転・反転 コマンド追加
    • 横縦の入れ替え、全体回転、左右上下のミラーなど柔軟なレイアウト変更

サイドウィンドウ対応Speedbar

  • Speedbar がサイドウィンドウに常駐可能に(speedbar-window)
    • 従来のフローティングフレームから進化、幅上限で他ウィンドウとの競合も低減

VC(バージョン管理)関連の改善

  • vc-dir-auto-hide-up-to-date で最新状態のファイルを自動非表示
    • 手動リフレッシュ&非表示コマンドが不要に
  • vc-allow-rewriting-published-history で公開済み履歴の書き換えを明示的に許可
    • Jujutsuやforce-pushワークフロー対応

xrefバッファのインライン編集

  • xrefバッファでの直接編集モード(xref-edit-mode) が新登場
    • Diredやgrepの編集ワークフローをxrefにも導入
    • 従来はgrepバッファへのエクスポート&編集が必要だったが、今後はxref上で直接編集可能
  • バッファ間の移動や余計なコマンドが不要に
    • Dmitry Gutov氏とのやり取りでUIが洗練、inline編集がデフォルトへ
  • 今後の検索UIの設計議論にも発展
    • *-edit-modeファミリーとwdiredの比較、将来的なライブ検索UIの可能性

Emacs 31 は「追加パッケージ不要でここまでできる」を大きく前進させるバージョン。 日々進化する開発版の体験をもとに、正式リリース時の新機能を先取りで紹介。 既存の設定やワークフローの大幅な簡素化・高機能化が期待できる。 どの機能も「標準でここまでできる」ことを実感できる内容。 正式リリース後は更なる安定化・機能追加にも期待。

Hackerたちの意見

「まだemacs使ってる人いる?」うん、いるよ。VSCodeのAI統合がemacsよりも良かった時期にちょっとだけそっちに行ったけど、Claudeをemacsでうまく動かせるようになってからは、完全にemacsに戻った。80x24ターミナル時代の古いエディタのように、一度に大量のコードを画面に表示できるものはないからね。標準のワイドスクリーンモニターを使ってて、emacs用に3つの縦ウィンドウを開いてるんだけど、それぞれを2つのフレームに分けることもよくあるから、最大で6つのコンテキストを同時に使えるんだ。あんまりやらないけど、2つか3つはよく使ってる。それが私の4K画面全体で、コードでいっぱい。IDEが嫌いなわけじゃないけど、画面に表示される情報が多すぎて、比率的に見たらコードエディタほど使ってないんだよね。10年くらい前にはemacsの将来についてちょっと不安になってた。メジャーバージョンのリリースノートを読んでも、特にワクワクすることはなかったし。treesitterあたりから何かがプロジェクトを活性化させた気がする。おそらく、全体的に活性化させたのはtreesitterだったんじゃないかな。各言語コミュニティがそれぞれのモードを維持するのではなく、一般的に役立つツールにもっと力を入れられると、少ない矢で多くの木を得られるんだ。今はメジャーリリースにもっとワクワクしてる。例えば、前述のClaude統合でターミナルの問題があるんだけど、それが私にとっての問題。止めるほどではないけど、ちょっと面倒。emacsファンにとっては炎上しそうなことを言うリスクがあるけど、emacsが他のものに追いついてきてる気がする…でも、追いついてるんだ。パワーツールエディタとして真剣に考える価値があるものとして、再び勧めやすくなってきた。15年も使ってきたから変える理由がなかっただけじゃなくて、AIが私にとって多くのIDEツールを食ってしまったし、emacsでも他のものと同じようにテキストボックスに入力できるからね。今でも時々VSCodeを使ってデバッガーを立ち上げるけど、emacsほど快適には感じない。でも、私のデバッグ習慣は、デバッグセッションを行うためにちょっと余分なことをするのには慣れてるから。そもそも、デバッグをするためには時間をかける必要があるから、UIがどんなにスムーズでも、ちょっとしたオーバーヘッドはそんなに悪くないよ。

私が聞く二つの不満は、1. 使い方を覚えるのが大変なこと。2. ボタンの組み合わせを押し続けるせいで手首が痛くなること。まあ、それ以外はまだまだ多くの人が使ってて、素晴らしいよ。ただ、新しいユーザーにはちょっと取り付きにくいかもね。

今はメジャーなリリースにワクワクしてるよ。たとえば、さっきのClaude統合の件で、タームの問題がちょっと気になるんだ。止めるほどじゃないけど、イライラするね。共同メンテナンスしてるから偏見があるかもしれないけど、まだ試してないならGhostel(https://github.com/dakra/ghostel)を試してみてほしいな。もしもう使ってるなら、バグを報告してくれれば修正できるから :)

エージェントシェルを使ってみたら?全体の体験がすごく良くなるよ。それと、claude-code-ide.elも試してみて。

「まだEmacs使ってる人いる?」もちろん!Emacsは何年も安定したエディタとして使ってきたし、いろんな言語にも対応してきた。他のIDEもいろいろ試したけど、結局はEmacsが残った(最近ではCursorが売り切れたね)。Emacsには常に新しい機能が追加されてるよ。数年前のマルチカーソル編集から、最近のLSPやtree sitterまで。今はvertico/marginalia/consult/embarkのコンボパッケージにハマってる。Embarkのコンテキストに基づくアクションは、ほんとに素晴らしい過小評価されたパッケージだよ。

すごい、auto install treesitterの文法、編集可能なxref、ウィンドウレイアウトの転置、フレーム内のサイドウィンドウとしてのスピードバー、これらのことが来るなんて全然知らなかったし、最近の数週間で「これがOOTBでサポートされてたらいいな」と思ってたことが実現した!夢が叶うこともあるんだね!

これらの改善を見て嬉しいよ。Emacsでいつもイライラするのは、現代的なエディタを動かすのに必要な設定が多すぎること。Doom EmacsやSpacemacsはその問題を解決しようとしてるけど、どちらもバニラemacsからはかなり離れてる感じがする。Emacsにいくつかのプリセットがあって、一行でエディタを異なるベースポイントに変えられたらいいのに。例えば、ほとんどの開発者はデフォルトでtreesitterハイライトとLSPを有効にしたいと思ってるはず。だから、(preset-base-ide-1)みたいなプリセットがあれば、機能するまでに200行の設定をしなくても済むのに。もっと近いスタート地点から始められるようにしたいよね。

Vimユーザーとして(自分の無知を認めるけど)、こういうものを自分で作るのは無理なの?Emacsは柔軟で拡張性があると言われてるし、少なくともそういう評判があると思ってる。多分、かなりの時間がかかると思うけど。こういうことをやってるおじいちゃんたちいる?

確かに。自分はDoom Emacsを使ってるけど、最近はバニラEmacsに移行しようかなって考えてる。キーのバインドの違いで移行期間が心配だけど、そんなに悪くないと思うよ。

Emacsを現代的なエディタにするために必要なものって何?自分はcua-modeを使ってて、スタートアップメッセージは表示しないようにしてるけど、他に何が必要かな?

このコメントは毎回Emacsスレッドに現れるけど、どうしてなのか全然理解できない。シェルで一行打つだけで、プリメイドの設定をダウンロードできるのに、それを基に何を入れるか決めるのは誰なんだろう?誰もが必要なプリメイドの設定を決めるのに時間をかける価値はないと思う。

文化的なものだと思うよ。まるでジェダイが自分のライトセーバーを作るみたいな感じ。EmacsやVimの入門の一部は、自分に合った設定を作ることなんだ。プラグインの設定やキーのバインディング、カラースキームなどを設定するのが楽しみの一部だよ(少なくとも自分にとってはね)。

Hacker Newsで議論の続きを見る