Skip to content

What is different about Emacs 29?

Here’s a list of the most important changes in Emacs 29 as compared to Emacs 28 (the full list is too long, and can be read in the Emacs NEWS file by typing C-h n inside Emacs).

Note that Emacs 29.3 and 29.4 both contained important security fixes. Upgrading is particularly important if you use Emacs as a mail client.

  • Emacs can now be built with the tree-sitter library, which provides incremental parsing capabilities for several programming languages. Emacs comes with several major modes which use this library for syntax highlighting (a.k.a. “fontification”), indentation, Imenu support, etc. These modes have names lang-ts-mode, where lang is the programming language. For example, c-ts-mode, ruby-ts-mode, etc. There are several new font-lock faces, such as font-lock-number-face and font-lock-operator-face, intended to be used with these modes.

  • Emacs can now be built in the PGTK (“pure GTK”) configuration, which supports running Emacs on window systems other than X, such as Wayland and Broadway.

  • Emacs now has built-in support for accessing SQLite databases. This requires Emacs to be built with the optional sqlite3 library.

  • Emacs comes with the popular use-package package bundled.

  • Emacs can now display WebP images, if it was built with the optional libwebp library.

  • On X window system, Emacs now supports the XInput2 specification for input events.

  • Emacs now comes with a client library for using Language Server Protocol (LSP) servers. This library, named eglot.el (the name stands for “Emacs polyGlot”) provides LSP support for various software development and maintenance features, such as xref, Imenu, ElDoc, etc.

  • Emacs can now cope with files with very long lines much better. It no longer hangs when displaying such long lines, and allows reasonably-responsive editing when such lines are present in the visible portion of a buffer.

  • Emacs now supports the latest version 15.0 of the Unicode Standard.

  • The new mode pixel-scroll-precision-mode allows precise and smooth scrolling of the display at pixel resolution, if your mouse supports this.

  • Emacs now supports 24-bit true colors on more terminals.

  • On capable X terminal emulators, Emacs now supports setting the X primary selection on TTY frames.

  • New convenient commands are now available for inserting, searching, listing, and describing Emoji. These commands are on the C-x 8 e

    prefix key. The commands C-u C-x = (what-cursor-position) and M-x describe-char now show the names of Emoji sequences at point.

  • The Help commands were enhanced:

    • M-x apropos-variable shows the values of the matching variables.
    • C-h b activates outline-minor-mode in the buffer, which makes it easier to browse long lists of key bindings.
    • I in the *Help* buffer displays the corresponding documentation in the Emacs Lisp Reference manual.
    • New command help-quick displays a buffer with overview of common Help commands.
  • Outline Minor mode uses buttons to hide and show outlines.

  • Deleted frames can now be undeleted using C-x 5 u, if the optional undelete-frame-mode is enabled.

  • You can now delete the entire composed sequence of characters with Delete and edits the composed sequence by turning on the composition-break-at-point option.

  • Support is added for many old scripts and writing systems, such as Tai Tham, Brahmi, Tirhuta, Modi, Lepcha, and many others.

  • New translations of the Emacs tutorial: Ukrainian and Greek.

  • New major modes for Typescript, Csharp, CMake, Go, Rust, and Yaml.