GNU Emacs 27.1 Released
Published:
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!