 Up |  Home

The Eternal Battle of Editors

I have switched between open source text editors more times than I care to admit. Try as I might, ever since 2015, I have been pulled back and forth between Vim (but mostly Neovim) and Emacs. It's really challenging to write about this in a compelling and interesting way. This serves more as a public confession than it does anything practical. If you've been following this blog since its reboot about half a year ago, the marks of my personal struggle are on this website. See the last article if you're wondering what I mean.

When I get pulled to Emacs or Neovim, the rest of my ideological computer use goes with me. When I am using Emacs, I feel the need to use it as much as I can. When I use Neovim, I regress back into sharper tooling that more closely aligns with the classic Unix philosophy. This behaviour is compulsive and deeply rooted in the "all-or-nothing" nature of my ADHD, or as I like to call it, my "poo brain."

An AI generated image of a purple Emacs wizard in a gruelling battle with a green Neovim sorcerer. Chat GPT Prompt was generate an image that represents Emacs vs Neovim. Emacs is a purple wizard with a long white beard and hair. Neovim is a green sorcerer blue accessories, has a bald head and a goatee. The two are engaged in a magical battle. Use the colors provided in their logos that are attached to this prompt
Figure 1: Image courtesy of ChatGPT

On one hand, the Neovim way seems more productive. The tools are faster, pieces of my Emacs workflow get delegated to sharper, purpose-built tools. Neovim itself is built for developers by developers. The programmer tooling is a cut above most other free & open source tooling. The effort to make Neovim an incredible personal developer environment is a consolidated one.

On the other, we have Emacs. An incredible lisp machine that has been built upon by thousands of contributors since 1985. Buried within the machine are over 10,000 commands and secrets both arcane and new. Emacs is designed for everyone to use. The Lisp language is so simple that many so-called "non-programmers" can extend the editor with features that concern writers, managers, planners, researchers and programmers alike. The Org Mode feature alone is so bloody incredible that it ends up being the gateway for how I end up back in Emacs.

Web development in particular is its own stupid beast when it comes to tooling. LSP (Language Server Protocol) changed how we program and learn. It started out simple but now so many web things need multiple language servers per buffer. The "supported" implementation for LSP (Eglot) does not accommodate this. I am better served by "lsp-mode" to get back to work faster but the package is a lot less lean than Eglot. So many JavaScript toolchains in particular move quickly and change directions so fast that it straight up breaks my Emacs tooling where Neovim tends to keep up. At the time of my writing this article my developer workflow in Emacs is going really, really well so long as nothing changes in the VueJS language server (again).

All of this being said, my heart is in Emacs. It taught me to love Lisp and functional programming and inspired me to become a real open-source contributor. I have a couple of Emacs packages of my own. I am not a "Stallmanite" but I believe in the ethos of the Free Software Foundation. The people in the Emacs community resonate well with me. Objectively, with all things considered, I am probably happier in Emacs. Especially when I can go weeks if not months without feeling the need to change anything.

I think I will always love messing with text editors in general and engaging my hacker1 communities online, but the hope is that I can just root myself a bit more in Emacs and move on from the 60-90 day cycle of switching things up. There are just so many other interesting and more important things I could be working on.


Footnotes:

1

By hacker I'm referring to the software hacker, not the security/system hacker.