You might look at the title and be a bit confused. Doom Emacs? What the hell is that supposed to mean? Well, it’s a config for Emacs for martian “vimmers”, as the author claims. Yeah, I’ve got muscle memory for vi-type editors. Looking at Emacs' default keybindings I suddenly get onset carpal tunnel. Doom Emacs is based on Emacs' Evil-Mode, which replaces the crappy editor inside Emacs with something a lot more VIM-like.

Emacs is a bit of a weird beast. People use it like an editor, but it can actually also read your mail, get you on IRC, help you write documents, and it even has a build in outliner/organizer. It’s more or less a lisp virtual machine that also edits code. How about that.

Sounds cool. Where do I get it?

From github, of course. Where else? Oh, you want to know where to actually get it? Try here:

Make sure you have a recent Emacs first (v26 or higher), oh and READ THE MANUAL. You will be sad otherwise. Especially when you want to customize things (and you will want to.)

Great, I have it working. Now what?

Well, that’s up to you, isn’t it? To help you on your way, I found the following resources helpful to get to grips with this behemoth of an editor:

  • DoomCasts: Emacs Doom Screencasts - This guy goes into how to get around in Emacs Doom, and how to set up things like org-mode and projects
  • Emacs Doom for Newbies - Very nice resource that will go into all the keybindings and setups.
  • Google/Duckduckgo/startpage/etc. Just use a flippin' search engine already.

So, how have you been getting on with it?

Oh, you want to know what I think, huh. Well, this post has been written with Doom Emacs. To make it completely meta, let’s include a screenshot of me writing this post:

My Doom Emacs window

My verdict? Well, it’s pretty good I guess. It is a bit finicky at times though. It also stalls and crashes every once in a while. It’s not going to replace Neovim for me yet. But if you want to give Emacs a go, without relearning most of what you know, then by all means, give it a spin.

I’ll post my config in my dotfiles at <>. Warning, I don’t know how to code emacs-lisp, so excuse the horribleness. :)

Oh, and don’t forget to have fun.