I’ve decided to take a look at Emacs. This is despite my on-going project to learn how to use Neovim. But I’ve realised that the two are not necessarily synonymous with Neovim being a text editor whilst Emacs is more of a ‘computing environment’ which contains an editor.

Whilst I enjoy writing in Neovim, whenever I try to use it as a replacement for Visual Studio Code it feels like I am trying to pile external functionality on top of a great core and whilst it can definitely be done it all feels a bit, well, clumsy. Maybe Emacs will suit me better.

As an aside, I had to visit the VS Code home page to fine the link in the previous paragraph and was met by the following in the hero section: “The open source AI code editor”. The alone makes me want to move on from using VS Code but that’s a different rant for a different blog post.

Learning The Basics

I tend to learn best from books (ideally physical) and whilst I know that the official Emacs guide can be downloaded and printed out I wanted something a bit less dry.

Emacs books tend not to be published terribly often so I picked a book from 2015, Harley Hahn’s Emacs Field Guide. However it is only after the first 70 pages that Emacs gets installed and you are ready to start using it. This is a book with some very obvious padding and it all feels like the author has recycled content from other books they have written about Linux. I was increasingly unsure that this was the book for me.

I decided to return the book to Amazon who refunded me and told me to just keep the physical copy.

Fortunately a colleague told me about Mastering Emacs which is much more recently written and also much better at getting to the point. It is only available as an ebook so at the moment I am reading it on my iPad whilst I tinker on my laptop but I may get a physical copy printed. So far it has been very good but the structure and flow of the information feels a bit disjointed.

Therefore I also picked up a physical copy of the 3rd edition of Learning GNU Emacs. Like Harley Hahn’s book, this is not particularly up-to-date (it was published in 2014) but the fundamentals will not have changed too much and I am really enjoying the style and structure of it.

There are also a plethora of video on YouTube and the ones which seem to have clicked the best with me are ones by System Crafters.

My Planned Approach

As I learnt from dipping my toe into Neovim, the best way to learn something new and complex is to use it as much as possible. I’m starting to write things like this blog post in Emacs and will try some coding in it soon too but I have a feeling that the initial learning curve will be even higher than Neovim’s was for me.

I’m probably going to write some blog posts which will be designed to help me remember some fundamental concepts and key combinations rather than being compelling reading for anyone else. Largely due to its age and pre-dating a lot of more modern, accepted terms, Emacs uses some terminology which is very different to what most of us are used to. For example, syntax highlighting is called Font Locking. Cutting, copying and pasting are killing, saving to the kill ring and yanking (apparently the kill ring encapsulates a clever approach to clipboard management and I’m looking forward to learning about it).

I will be writing some more compelling posts about how things are done. For example, I recently had to update the internal links in my blog after changing the theme and configuration. I did that in VS Code because I am familiar with searching a ‘project’ (a folder hierarchy of files) and replacing text but I want to work out how I would do it efficiently in Emacs, and maybe also work out how I would do it in Neovim.

And really this is just me having a play with something new to see if it works better for me than Neovim or VS Code does. It might not in which case this might be a very short series of posts.

Very First Impressions

There is something splendidly eccentric about Emacs which I like enormously. It’s very alien and I feel terribly clumsy using it but there is an underlying feeling that a system which has been around for decades must have something going for it and so digging into it should be a lot of fun.

And just editing this post made me smile… I started the first draft two months ago and so the file was called 2025-07-29-emacs.md. Today, after reviewing the draft and updating a few bits, including the metadata, I needed to rename the file to use today’s date. It was as simple as…

  1. Pressing C-x d to open Dired, Emacs’s directory editor.
  2. Pressing Return to select the current file’s directory.
  3. Pressing C-x C-j to jump to the current file (you could also just move the cursor to it).
  4. Pressing R to rename the file.
  5. Pressing q to leave Dired and go back to the file.

(As an aside, yes, I know this happens in buffers but for a first Emacs post I want to keep things simple.)

We’ll see if I’m still smiling in a few weeks or months!