Emacs 31の新機能:既に日々利用している変更点
原題: Emacs 31 is around the corner: The changes I'm daily driving
なぜ重要か
Emacsユーザーの基本的なワークフローが改善される。設定の複雑さが減り、新規ユーザーのオンボーディング障壁が低下。テキストエディタ業界での標準言語サポートの進化を示唆。
Emacs 31のリリースを前に、ブログ著者が開発版から数ヶ月間日常的に利用している新機能を紹介。Tree-sitterの簡素化、マークダウンTS対応など、外部パッケージ不要の改善が複数登場。2026年中盤時点での開発状況をまとめている。
Emacs 31はまだ開発段階(プレリリース段階)だが、著者は数ヶ月前からemacs-31ブランチとmasterから構築したバージョンを日常的に使用している。新機能を「Emacs Solo」という外部パッケージに依存しない設定に組み込み、後で参照できるよう「EMACS-31」コメントを付けて記録している。
最も重要な改善点は、Tree-sitterの利用が大幅に簡素化されたこと。従来は、言語ごとにtreesit-language-source-alistを手動設定し、treesit-install-language-grammarを呼び出し、コンパイルツールチェーンの動作を祈る必要があった。Emacs 31では、treesit-auto-install-grammarをtrueに設定するだけで、文法が不足している場合に自動的にフェッチしてビルドするよう促す。この機能は従来のtreesit-autoパッケージと同じ体験を提供するが、コアに組み込まれている。treesit-enabled-modesをtrueに設定すれば、Tree-sitterバリアントを持つメジャーモードが自動的に切り替わる。TypeScript、TSX、Rust、TOML、YAML、Dockerfileなど複数言語の文法ソースがモードコード内に含まれるようになり、設定ファイルから削除できる行が大幅に減る。
注意点として、異なるアーキテクチャのマシン間でEmacディレクトリを共有する場合、自動インストールされた文法はアーキテクチャごとに分離されていない。x86_64とarm64のバイナリが同じ名前で保存されるため、一方で構築されたバイナリが他方で動作しない。
もう一つの新機能が、実験的なmarkdown-ts-modeの組み込み。著者は2025年初頭にemacs-develメーリングリストに提案を送り、初期コードを提供した。その後、Stéphane Marksが参加し、共著者となって現在の使いやすさを実現している。