Press "Enter" to skip to content

GNU Emacs 31.1: Approaching Fifty and Still Improving

More than four decades after Richard Stallman began GNU Emacs, version 31.1 makes the classic editor friendlier for everyday Linux users.

Cover art by Etienne Suvasa; cover design by Matt Lee., GFDL, via Wikimedia Commons

Proving there are some aspects of Free Software that not only last forever, but are constantly being made new again, GNU Emacs is out with version 31.1. This is the first new release in about a year for Emacs, which is, of course, every developer’s favorite text editor (unless they favor vi or vim, that is) and the first in the 31.x series.

You might’ve noticed that I called it Free Software instead of open source. That’s because Emacs was released as Free Software long before “open source” existed.

GNU’s version of Emacs was initially developed by Richard Stallman — aka the father of Free Software — starting in 1984 as a free software alternative to Gosling Emacs, which was proprietary. This was well over a decade before Bruce Perens, Eric Raymond, and others got together and came up with the phrase “open source,” mainly as a way of making free software palatable to capitalist enterprises, and five years or so before Stallman wrote the first version of the GPL as a way of codifying Free Software.

By the time Stallman was working on the GNU version, however, Emacs — or something very much like it — had been around for a while. Indeed, Stallman himself was initially introduced to Emacs in the mid 1970s, and according to a 2007 NY Times technology column by David Pogue, by 1979 Emacs was the main editor used at MIT’s AI lab and its Laboratory for Computer Science (yes, artificial intelligence was already a part of computer science way back then).

You might think that after a history stretching back 50 years, new versions of GNU Emacs would be relatively unimportant bug fixes by now. That would be wrong. This new edition ships with plenty of new features, with many of them aimed at the kind of everyday Linux users who these days struggle when using Emacs in a terminal.

** If you're finding this article useful, please consider supporting our work through our FOSS Force Independence 2026 fundraiser. **

If you’ll excuse the redundancy, this starts with startup. In this release, site-start.el loads before the user’s early init file, which reverses the previous order of early-init.el, followed by site-start.el, and then the user’s regular init file. This makes it possible to customize actions that could normally only be done from early-init.el, such as adding to a package-directory-list.

Also, xterm-mouse-mode is now enabled by default when being run in compatible terminals, which means that clicking, scrolling, and using the clipboard work out of the box. Dyed in the wool Emacs users who prefer the old way can roll it back and keep the old behavior by setting xterm-mouse-mode to nil.

Additionally, Emacs can now remove some of the busy work from managing local extensions. Put Lisp files in a user-lisp/ subfolder inside your configuration directory, and Emacs will recursively byte-compile them, prepare their autoloads, and add their directories to load-path. How cool is that?

There’s more, of course, that you can read about on a changelog page on GNU Savannah, GNU’s source-code service.

Wanna grab it? Signed tar.gz and tar.xz builds are available, with PGP signature files for tar.gz.sig and tar.xz.sig also available. A list of GNU mirrors is available online, or if the new release isn’t there yet, you can download from the main GNU ftp server.

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *