Emacs 31 Preview: A Daily Driver's Guide to Upcoming Features
AI News

Emacs 31 Preview: A Daily Driver's Guide to Upcoming Features

5 min
6/18/2026
EmacsText EditorsOpen SourceSoftware Development

Emacs 31 Preview: A Daily Driver's Guide to Upcoming Features

While official releases for major platforms like iOS 27 and Windows 11 capture mainstream headlines, the open-source community is quietly preparing its own significant updates. In the world of deeply customizable, extensible editing environments, the development branch for GNU Emacs 31 is shaping up to be a substantial release, packed with improvements that refine the core experience.

For power users who live inside their editor, these incremental enhancements can be transformative. Unlike the broad, consumer-focused feature lists seen in commercial OS updates—such as iOS 27's expanded language support for keyboards and Reminders or Windows 11's performance tweaks—Emacs development focuses on empowering the user with greater control and reducing configuration friction.

One developer, Rahul M. Juliato, has been daily driving builds from the emacs-31 branch and master for months, integrating new features into a configuration that eschews external packages. His experience, documented in a detailed blog post, provides a rare real-world preview of the editor's future, highlighting changes that move functionality from user-written glue code into the core system.

Tree-Sitter: From Manual Setup to Automatic

A standout improvement in Emacs 31 addresses a longtime pain point: setting up Tree-sitter. Previously, enabling a *-ts-mode required manually populating treesit-language-source-alist, calling treesit-install-language-grammar, and hoping your toolchain could compile the grammar.

Emacs 31 introduces two pivotal variables that automate much of this process. Setting treesit-enabled-modes to t automatically switches major modes to their Tree-sitter variants where available. More crucially, setting treesit-auto-install-grammar to t prompts Emacs to fetch and build missing grammars on-demand, eliminating setup errors.

This core integration mirrors the experience previously provided by the external treesit-auto package. The knock-on effect is a significant reduction in boilerplate configuration. Pre-defined grammar sources for languages like TypeScript, TSX, Rust, TOML, YAML, and Dockerfile are now embedded within the modes themselves.

Experimental but Promising: markdown-ts-mode

One of the more ambitious inclusions is an experimental markdown-ts-mode. Originating from a proposal by Rahul Juliato and significantly developed by Stéphane Marks, this mode aims to provide a first-class Markdown editing experience within Emacs.

Its design philosophy will feel familiar to Org-mode users, with similar keybindings and structural navigation for headings and sections. Its most notable trick is live, colored code block rendering: fenced code blocks are fontified using the *real* major mode for that language, providing proper syntax highlighting for languages like Elisp without extra setup.

The mode also supports inline image viewing, rendering ![](path) links as actual images within the buffer. As an experimental feature, it is not yet wired to auto-mode-alist; users must explicitly load it or add it themselves. Feedback is actively sought via the bug list to move it from "experimental" to "ready."

continue reading below...

Smarter Completions and Editing Workflows

Emacs 31 brings several refinements to completion and minibuffer interactions, aiming for a more responsive out-of-the-box experience. The new completion-eager-update and completion-eager-display variables refresh the completion UI as you type, rather than waiting for explicit prompts.

Setting minibuffer-visible-completions to 'up-down allows intuitive navigation through visible candidates with arrow keys. Icomplete, the built-in completion system, also receives attention, incorporating a patch for vertical in-buffer behavior and prefix indicators, further reducing the need for external completion frameworks.

Editing workflows are enhanced with new window management commands bound to C-x w. transpose-windows swaps horizontal and vertical arrangements, rotate-windows spins the layout, and flip-window commands mirror it horizontally or vertically. These tools allow rapid layout reorganization without manually splitting and killing windows.

Quality-of-Life: The Long Tail of Refinements

Beyond headline features, Emacs 31 includes a swath of small but impactful improvements. Many address specific, longstanding user frustrations:

  • kill-region-dwim: Set to 'emacs-word, this fixes a decades-old papercut: pressing C-w with no active region now kills a word backward instead of throwing a "mark is not active" error.
  • view-lossage-auto-refresh: Turns C-h l (view-lossage) into a live-updating display of recent keystrokes, invaluable for teaching or debugging.
  • ielm-history-file-name: Finally allows IELM (Emacs Lisp REPL) input history to persist across sessions, matching behavior of shells and other comint modes.
  • native-comp-async-on-battery-power: When set to nil, this prevents background native compilation jobs from running on battery power, a boon for laptop users.
  • tty-tip-mode: Brings tooltip functionality to terminal (-nw) users.

Other notable tweaks include editable xref buffers (eliminating the need for custom hacks to edit search results), a Speedbar that docks in a side window instead of a separate frame, and various version-control (VC) improvements like vc-dir-hide-up-to-date-on-revert.

Why Daily Drive a Development Branch?

Running an unreleased Emacs version, much like experimenting with a custom Android launcher over a manufacturer's default, is about seeking a tailored, optimal experience. For Juliato, it's a way to understand what's coming and to reduce reliance on personal configuration glue.

Each release absorbs functionality that users previously had to hand-roll, leading to shorter, more maintainable configuration files. This philosophy of a "batteries-included" but endlessly improvable core stands in contrast to the locked-down ecosystems of mainstream operating systems.

While iOS 27 adds grocery list categorization and Windows 11 focuses on performance, Emacs development prioritizes user agency. The upcoming release demonstrates a continued commitment to refining the foundational tools for programmers, writers, and system administrators who demand an editor that adapts to them, not the other way around.