Emacs 31 is Around the Corner: The Features Worth Daily Driving

TL;DR
Emacs 31 features worth daily driving - auto-installed tree-sitter grammars, a built-in markdown mode, window layout commands and better minibuffer completion.
Last updated: June 18, 2026
Emacs 31 is approaching release, and developer Rahul M. Juliato has been running the development branch since mid-2026. His writeup on the changes hit the front page of Hacker News with strong engagement - 391 points and 208 comments as of this writing.
The release continues a trend where core Emacs absorbs features that previously required external packages, gradually reducing configuration complexity for new and experienced users alike.
Tree-sitter Finally Gets Practical#
The biggest quality-of-life improvement is automatic grammar installation.
Previously, using tree-sitter (the incremental parsing library that enables better syntax highlighting and code navigation) required manual configuration. You had to set up treesit-language-source-alist, fetch grammars, compile them, and configure your modes to use the tree-sitter variants.
Emacs 31 changes this with two new options:
treesit-auto-install-grammarautomatically fetches and builds missing grammars when you open a filetreesit-enabled-modesautomatically switches major modes to their tree-sitter variants
The release also ships built-in grammar sources for TypeScript, Rust, TOML, YAML, and Dockerfile - eliminating the need for manual configuration in most common cases.
One caveat noted in the original post: auto-installed grammars are not segregated by architecture. If you share your .emacs.d across different systems (say, an x86 Linux machine and an ARM Mac), you will need to handle architecture differences yourself.
Built-in Markdown Mode#
markdown-ts-mode is a new experimental built-in mode that brings Org-like keybindings to Markdown editing:
- Syntax-highlighted code blocks using actual language modes
- Inline image rendering
- Org-mode-inspired navigation and folding
The mode is still experimental and requires manual activation via M-x load-library, but having a built-in option means less dependence on external packages for one of the most common file formats developers work with.
Window Management Commands#
New commands simplify layout rearrangement:
window-layout-transposeswaps horizontal/vertical arrangementswindow-layout-rotate-clockwiserotates the entire window layoutwindow-layout-flip-leftrightandwindow-layout-flip-topdownmirror layouts
These commands fill gaps that previously required custom elisp or third-party packages like transpose-frame.
Completion System Improvements#
The minibuffer completion experience gets several enhancements:
completion-eager-updaterefreshes suggestions while typingcompletion-eager-displayset to'auto'shows completions automaticallyminibuffer-visible-completionsenables arrow-key navigation through candidates
These make vanilla Emacs completion feel more like modern completion frameworks without requiring external packages.
Terminal Finally Works Properly#
The term buffer now correctly renders full-screen terminal applications like htop. This has been a longstanding pain point - Emacs' terminal emulation has historically struggled with applications that use the full terminal screen.
What HN is Saying#
The Hacker News discussion is substantial and reflects the Emacs community's engagement with the editor's development.
On continued relevance:
One heavily-upvoted comment noted that after briefly switching to VSCode for AI integration, they have returned to 100% Emacs now that Claude Code works well inside the editor. The argument: "There just isn't anything like the old editors, built in the 80x24 terminal era, for getting huge swathes of code on your screen at once."
The commenter runs a widescreen monitor with three vertical Emacs windows, often splitting each into two frames, putting six contexts on screen simultaneously. "I'm not an IDE hater but they do put an awful lot of stuff on the screen that on a proportional basis I'm just not using as much as I use the code editor."
On the tree-sitter improvements:
Multiple commenters expressed excitement about the automatic grammar installation: "Sweet. GLP1 for my .emacs!" (referring to weight loss drugs that help reduce bloated configs).
The tree-sitter integration has apparently revitalized the project. As one commenter put it: "Somewhere around treesitter something seems to have revitalized the project... You end up with a lot more wood behind fewer arrows when the project is able to put more work into generally-useful tools rather than every single language community maintaining their own separate mode for each language."
On the vim emulation:
Discussion touched on evil-mode (Emacs' vim emulation): "I've only ever used emacs in vim mode (evil-mode). Its vim emulation is the best I've seen anywhere." For a look at how modal editing habits carry over into terminal-based coding agents, see Codex CLI's modal vim terminal agents.
Some mentioned the daemon/client workflow - emacs --daemon with emacsclient - that makes opening files nearly instant by keeping a running Emacs instance.
On terminal emulators:
Several commenters recommended Ghostel, a newer terminal emulator backed by libghostty-vt that handles modern TUI applications better than vterm. One co-maintainer noted it is particularly good with Claude Code's interface animations. If terminal rendering for agentic workflows interests you, Warp 2's agentic terminal covers a different approach to the same problem.
On the common objections:
The thread addressed the two most common complaints about Emacs:
- Steep learning curve - acknowledged but viewed as a worthwhile investment
- Wrist pain from key combinations - solutions include remapping Caps Lock to Control, using the meat of your hand to hit Control rather than your pinkie, or using vim emulation via evil-mode
Other Notable Improvements#
Speedbar: Now docks to side windows instead of spawning separate floating frames.
Xref buffers: Support inline editing with xref-edit-mode, eliminating the need for grep workarounds when making bulk changes across files.
Version control: vc-dir-auto-hide-up-to-date automatically hides up-to-date files during directory refreshes.
Quality-of-life:
kill-region-dwimmakesC-wkill words when no region is activeview-lossage-auto-refreshprovides live keystroke visualization for teachingielm-history-file-namepersists REPL history across sessions
Modus Themes: Emacs 31 ships with eight accessibility-focused color schemes, including deuteranopia and tritanopia variants for color-blind users.
Should You Try It?#
If you are already an Emacs user, the tree-sitter improvements alone might be worth running the development branch. The reduced configuration burden for syntax highlighting across languages addresses one of Emacs' historical pain points.
If you have been Emacs-curious but put off by the setup complexity, Emacs 31 moves in the right direction. More features work out of the box, and the completion system improvements make vanilla Emacs feel more modern without requiring a framework like Doom or Spacemacs.
The continued development also signals something about the editor's future. While much of the developer tools conversation has shifted to AI coding assistants and editors like Zed, there is clearly still a dedicated community working on and using Emacs - and the project is incorporating features (tree-sitter, better completions, working terminals) that keep it relevant for modern development workflows.
FAQ#
How does Emacs 31 make tree-sitter easier to use?#
Emacs 31 adds treesit-auto-install-grammar, which fetches and builds missing grammars when you open a file, and treesit-enabled-modes, which switches major modes to their tree-sitter variants automatically. It also ships built-in grammar sources for TypeScript, Rust, TOML, YAML, and Dockerfile. One caveat: auto-installed grammars are not segregated by architecture, so a shared .emacs.d across x86 and ARM machines needs extra handling.
Does Emacs 31 have a built-in Markdown mode?#
Yes, markdown-ts-mode is a new experimental built-in mode with Org-like keybindings, syntax-highlighted code blocks using actual language modes, inline image rendering, and Org-inspired navigation and folding. Because it is experimental, it requires manual activation via M-x load-library.
What new window management commands are in Emacs 31?#
Emacs 31 adds window-layout-transpose to swap horizontal and vertical arrangements, window-layout-rotate-clockwise to rotate the whole layout, and window-layout-flip-leftright and window-layout-flip-topdown to mirror layouts. These cover gaps that previously needed custom elisp or packages like transpose-frame.
Does the Emacs terminal handle full-screen apps in Emacs 31?#
Yes. The term buffer now correctly renders full-screen terminal applications like htop, a longstanding pain point. In the HN thread, several commenters also recommended Ghostel, a terminal emulator backed by libghostty-vt, for modern TUI applications.
Sources#
- Original article: Emacs 31 is around the corner
- Hacker News discussion
- Ghostel terminal emulator
- GNU Emacs development branch
Continue Reading#
- Best Free Developer Tools - more tooling worth a place next to your editor
- Best CLI Tools for Developers - terminal tools, including coding agents, compared
Get the next deep dive like this in your inbox
One email a week on News and the rest of the AI dev stack. Free.
Read next on AI coding tools
Git Finally Gets a History Command Worth Using
Git history command: how the experimental fixup, reword and split subcommands in Git 2.54 and 2.55 replace scary interactive rebases, and what developers think.
5 min readTypeScript 7 Is Here: The Native Go Port Delivers 10x Faster Builds
TypeScript 7.0 ships a Go rewrite of the compiler with 8-12x build speedups and faster editors on large codebases. Benchmarks, why Go, and what changes.
6 min readThe Shell Colon Does Nothing. You Should Use It Anyway.
The shell colon null command explained: parameter expansion checks, default values, infinite loops and the git rebase trick, plus the HN readability debate.
5 min readNew here? Start with
Technical content at the intersection of AI and development. Building with AI agents, Claude Code, and modern dev tools - then showing you exactly how it works.





