Journal

Look ma, I'm using Emacs!

Lately I’ve been testing Emacs. It started as a curiosity: wanting an console environment I can hack in, where the editor becomes more than a text box with plugins. Lisp has been on the back of my mind for a while, and I’ve been comfortable for years with modal editors, shells and tiling window managers. I’m not sure yet whether it will become my daily driver, but it’s definitely a tool I’m enjoying using (although my fingers don’t like it yet).

I didn’t want to fall into the trap of adopting someone else’s megaconfiguration or adding so called “starter kits”. I started small:

  • A plain Emacs setup, only enabling what I needed as I needed it.
  • Org mode, because everyone warns you it’s a rabbit hole, they’re right.
  • Aesthetic tweaks kept to a minimum. I didn’t want the editor to look pretty before I understood how it worked.

From there, I incrementally added layers. The first moment of epiphany? came when I understood the difference between configuring and programming. Configuring Emacs is trivial, or so they say lol. But programming it, bending it to my workflow and absurd ideas like making everything a buffer, that’s where the magic happens.

I’ve been especially interested in using Emacs as a kind of command center: editing files, interacting with terminals, outlining ideas for upcoming projects, and making everything a buffer, because BUFFERS!!!!!!!! HAHAHA.

And of course, I printed this GNU/Emacs Reference Card

A few observations from these experiments:

  • Emacs rewards slow buildup. No big ambitions here, just a few small steps at a time. The moment you try to import a giant config is the moment you stop learning it. I tried spacemacs and in the end I just wanted to build my own config from scratch.
  • Lisp clicks eventually. My background in lots of languages helped, but there was still a threshold moment where Emacs Lisp stopped feeling alien.
  • The editor becomes an environment. Using it to write notes, agenda, todos, browse directories, manage Git, and navigate code from one system has a certain appeal. It is good that also the mouse can be used to navigate when your fingers are tired.
  • Muscle memory fights back. Non-continous periods of heavy use of Vim bindings don’t disappear fast. I’m still evaluating whether I want to go full Evil mode or keep Emacs native. However, tmux muscle memory helps a bit.

None of this is final. I don’t know yet whether Emacs will end up being my daily IDE or a specialized tool for writing, planning and experimentation. But I believe that it has a quality I’ve been missing: it pushes me to think differently about the tools I use and to build systems that match how I think, not the other way around.