GNU Emacs 27.1 Released

Published: [2020-08-15 Sat]

emacs.png

Figure 1: My daily driver. This is GNU Emacs 27.1, compiled with the Lucid toolkit and the tabbar package from MELPA installed. In this screenshot I am editing a draft of this blog article.

Haha! Emacs is still around?

Yes! Emacs is still alive and kicking. On 11 August 2020, the GNU project announced the release of the venerable text editor and IDE GNU Emacs 27.1. This is a major release, the first in a couple years. (Emacs 26.1 was released in May 2018. Emacs 26.3 was released in August 2019.)

What does a major release mean? Firstly, considering the release date (11 August), it means that the GNU project missed a perfect opportunity to codename a release after the virgin and martyr Saint Philomena. (She has a truly amazing story about rebuffing Diocletian’s sexual advances at the cost of her life.) More practically, the major release means that you can now benefit from another year of incremental usability improvements.

What is it?

For the uninitiated: GNU Emacs is an extensible text editor and IDE. Because it is written in C, Emacs is very lean and fast on modern hardware, and the extensibility is made possible by use of Emacs Lisp. Emacs development can be traced back decades, so it (sadly) has the reputation of being a relic from the past. However, Emacs is far from dinosaur status in 2020.

What’s new?

  • Emacs now uses the GNU Multiple Precision (GMP) library for better numerical precision in elisp.
  • Emacs now uses HarfBuzz to improve font rendering.
  • There is native JSON support (using the Jansson library).
  • Cairo support is now release ready (for better font rendering).
  • Emacs can resize and rotate images. (Pretty nice bonus for a text editor.)
  • In a completion list, the already-completed part of each completion suggestion is highlighted blue to draw more attention to the uncompleted part of each suggestion.
  • There is a new tab-bar-mode, with which I have yet to experiment.
  • And many more usability enhancements. See the full changelog.

Why use Emacs in 2020?

Why would anyone, even a programmer, desire to learn Emacs in the year 2020? There is a joke about Emacs: it is a fine place to live, but not a good place to visit. In other words, Emacs has a sharp learning curve. What could justify the curve? Two words: Org Mode.

Org Mode is a shining example of a software package and could be someone’s one and only reason for learning Emacs. Org Mode is part organizer, part markup language, and part word processor. Org Mode has a powerful text-based markup language with exporters for HTML, PDF, LibreOffice, and many more. You can use Org Mode to write office documents, books, and your own personal wiki pages.

It may surprise you that this entire website consists of Org Mode pages turned into HTML. (Refer to the screenshot above.) That’s how powerful Org Mode is. (Try changing the emacs-27.1.html filename in your browser’s address bar to emacs-27.1.org. This will give you the Org Mode source of this page.)

On top of all that, Org Mode is a personal organizer. You can create a todo list, schedule todo items, and create interactive agenda listings, all from a plain text file. You will never forget to sent Aunt Tillie a birthday gift ever again.

Org Mode is such a killer application that a full tutorial would span several articles.

The ability to run a shell in a buffer is the other powerful Emacs feature. Without leaving Emacs, you can start a shell by running M-x shell. The shell runs inside a buffer, so every command and command output is editable just like any other text file. It’s very pleasant to use and very powerful.

How do you learn Emacs in 2020?

A brief anecdote: I started to learn Emacs in 2017 to take my mind off of some intense emotional trauma. (I later learned that the technique of channeling intense negative urges into something productive is called sublimation. Sublimation is healthy and very useful.) I thought my case was a little strange, but then I found out I wasn’t the only one to do such a thing!

Nowadays, there are several Emacs variants and prepackaged configurations, such as Spacemacs and Doom Emacs. If you like pre-canned configurations optimized for certain tasks, then maybe those are worth trying.

If you want to learn vanilla GNU Emacs, start with the builtin tutorial. Install Emacs, launch it, and type C-h t. This displays a builtin tutorial that starts by walking you through basic navigation techniques, basic editing techniques, and then shows how to run commands and get more information about commands. You can work through the whole tutorial in an afternoon. After working through the tutorial, you will be Emacs literate. (That’s a promise.)

After that, Emacs becomes a choose-your-own-adventure story. No one (not even Richard Stallman) uses every single mode and feature of Emacs. If you want to learn more about Org Mode, start reading the manual for Org Mode. If you want to learn how to use the IDE features for C programming, read the manual and use them. Most of all, have a little fun. (Play M-x tetris or run M-x doctor if you are feeling down.)

Conclusion

Far from being stale, Emacs is moving forward with the best kind of updates: steady incremental changes that avoid breaking backwards compatibility.

Enjoy!

Feedback