Emacs, Emacs, Emacs!

I've been using Emacs daily for many years. I don't often think about it, it's just always there. But lately, it's been popping up everywhere!

First, I saw a great post from Karthik Chikmagalur on Batteries included with Emacs, which talked about several things we can do in Emacs without any external packages. It assumes a modern Emacs, by which it means version 26.3 or newer. The desktop computer I use most of the time is currently running Debian 10, which comes with

$ emacs --version | head -1
GNU Emacs 26.1

Oh, too bad— not modern enough! Sometimes, I use a laptop which currently is running Debian bullseye. It currently has Emacs 27.1 (I think it only updated to that recently), so I jumped on there and tried out a few things from that post.

Then, I got an email from Mickey Petersen telling me a new version of Mastering Emacs is out that covers Emacs 26 and 27. Since I bought a previous edition, I could download the new version for free. So I did! I prefer real ink-on-paper books to ebooks in almost every way, but even I have to admit that you can't do that with regular books. Part of that process mentioned reading the EPUB version in Emacs with nov.el. I had not tried that before, so I gave it a whirl. Worked great! I used to prefer PDFs to EPUBs, but now I think I prefer reading EPUBs.

The very next day was the start of EmacsConf 2020! This was a terrific two-day conference. There were a ton of really great talks, including an entire afternoon spent on Org mode! Thanks to all the organizers, speakers, and volunteers for a superfun weekend!

One talk that really caught my attention was A tour of vterm by Gabriele Bozzola. This time, trying vterm required an Emacs compiled with module support. Again, the Emacs on my desktop had no module support, but the Emacs on my laptop did. So back to the laptop for more experimenting.

Turns out, I really liked vterm, so now I want it on my desktop too. How best to do that? I guess I could compile an Emacs with module support, but if I'm going to do that, it might as well be the latest. Also, another thing I've been meaning to try is GccEmacs, which compiles elisp to native code with libgccjit. Why not go all in and install gccemacs?

To install Guix, I first installed checkinstall from Debian backports. But when I tried

sudo checkinstall ./guix-install.sh

it failed. I started going through the steps in the guix-install.sh and before I knew it, guix was installed. So I added flat's guix channel, and installed the latest Emacs

$EDITOR ~/.config/guix/channels.scm:
guix pull
guix install libgccjit@10.2.0
guix install emacs-pgtk-native-comp

Huzzah!

$ ~/.guix-profile/bin/emacs --version | head -1
GNU Emacs 28.0.50

Now I've got modules, I've got vterm, I've got native compilation…I've got it all! I can try everything in Karthik's blog post, everything in Mickey's book, and everything I saw at EmacsConf.

I've spent the last few days doing puzzles from Advent of Code with this set up and I'm loving it. I'm trying out new things like fido-mode and having a ball. This is very productive.

Emacs with vterm window

I love Emacs!