Someone noticed in my recent init.el that I had removed Evil from my config. Here I want to explain why I grew frustrated with it.

To give you some context, I am an ex-vimmer that switched to Emacs initially out of curiosity for the Evil project. I tried to build my config using Evil before knowing any basic elisp, then learned about Spacemacs.

It was version 0.101 at that time if I remember correctly, so it was pretty mature already. I ended up using Spacemacs for quite a long time, but grew frustrated with it, for reasons I have exposed here.

So I went down the process of building my own Emacs, like thousands before me. I documented the process here and here. I used Evil and General.el a lot. But I started to notice that more and more of my keybindings where plain old “pure” Emacs keybindings, à la Shift-Meta-Ctrl.

Using a new Git-Flow “feature” branch — a habit I would recommend to anybody tweeking its init.el, I tested if I could handle editing without any reference to Evil-based modal editing.

It just worked. So I merged the feature/eviless branch.

But why did it worked ? After three years of vim, Spacemacs and pure Evil, I was getting used to the habit of modal editing. Basic movement were “deeply ingrained in muscle memory” as they say. I was just at the stage where I was progressively grokking the power of modal editing, I started to use complex operations more and more intuitively. So why in hell would I switch ?

Among other things :

  • kbd were more and more emacs based.
  • I got Ctrl Meta Super Hyper Shift and Alt.
  • Hyper and Super are almost never exploited in pure Emacs.
  • Hyper, Hyper-Shift, Hyper-Meta, Hyper-Meta-Shift, Super, Super-Shift, Super-Meta-Shift … You name it. Almost unlimited combination.
  • I got Hydra to create microstate.
  • I miss text objects
  • I don’t miss modal editing, kept going in my way.
  • Direct Keybindings suits my mind better.
  • Chords are cool.

Retrospectively, I would say that the main reasons for my switch were social ones. There is social pressure — in the sense of conforming to the cool kids you tend to frequent — in the emacsverse, for keeping things close to a bare emacs experience. Plus at the time I was a lot on emacs reddit, and many people there were just using a minimalist emacs with a lot of custom functions — I know, it’s paradoxical — and the smallest list of external packages possible.

When I “quit” Evil, I realized that it was getting in my way a lot. I mean, I would still say vim/Evil is better than bare emacs at text editing, but emacs is a lot more than text editing.