Software! Math! Data! The blog of R. Sean Bowman
The blog of R. Sean Bowman
November 26 2016

TL;DR: I used Emacs for 15 years. Then I used Vim for 1.5 years. Now I use Emacs with Vim bindings through Evil mode. Editing has never been better!

The longer story

Years and years ago, I began to have a need to edit text for programming. I started using Emacs. I don’t remember why. I don’t think I had any mentors or friends who used it, but it’s easy enough to get going with and I liked it just fine.

One summer I had a programming gig with a buddy who used Vim. I occasionally needed to use it (because I was on a computer without Emacs) so I learned enough to get to insert mode, leave insert mode, save a file, and quit. Come to think of it, I couldn’t do much more with Emacs, and it stayed that way for quite a few years. I edited text with the arrow keys, backspace, and whatever niceties happened to be included by default.

Eventually I learned some commands, needed to save some customizations, and so I wrote down my configuration in init.el. Around this time I started to see that most of the power of Emacs comes from stuff that isn’t automatically enabled. I got more comfortable with Emacs lisp and the popular packages and modes available. Life was good.

I used the Emacs starter kit for a while, or Prelude, or some or another prepackaged setup. Lots of people have a low opinion of these sorts of configurations, but they were great for me. I learned about lots of awesome packages, I learned editor commands and key sequences, I learned more Emacs lisp. Not too long after that I ditched the starter kit for my own configuration, v2.

I started doing math, got a PhD, did lots of programming for myself and for side projects. In the middle of my postdoc I was on maybe my fifth start-from-scratch Emacs config. And then I was bored or crazy or something happened in my brain.

Vim, why not

I decided to learn Vim. I think I read some blog post about it, plus the idea of learning how to use Vim had been in the back of my mind since I learned those four or five commands years ago. Other than one or two relapses back to Emacs (that homework ain’t gonna write itself, and class is in 30 minutes…) I went cold turkey. I planned to use it for a month or two and go back to Emacs.

But I didn’t! I got a job programming in C++ with a side of Python and appetizers of everything from Bash to Clojure. I finished at least two math papers. And I never switched back. Editing with Vim really is fun, and the Vim philosophy of delegating things (spell checking, semantic completion, even selecting things from a list) to other programs is quite appealing.

What’s not appealing is Vim’s scripting language. I never even began to understand it. I think the only good thing about it is that it made me appreciate how wonderful and beautiful Emacs lisp is. I don’t remember exactly what made me want to jump ship, but I’m quite sure it involved frustration with trying to extend the editor.

Other stuff

I looked for other editors. Vis and Kakoune are both awesome up-and-coming editors. I didn’t find much else, and certainly nothing with a built in scripting story as compelling as Emacs.

I tried out Spacemacs and loved it. Spacemacs introduced me to Evil mode, insanely awesome, complete, and utterly usable Vim emulation for Emacs. Really, it’s the best. This might be the finest Emacs package I have ever used. The code is beautiful, most everything just works, I absolutely love it.

Spacemacs also includes tons more packages, all nicely curated and stitched together to work in harmony. It’s really quite a nice editor. But who wants to use someone else’s editor?

Today: Bowmacs

Today I use Bowmacs, the only editor by, for, and all about me, Sean Bowman. It’s built on Emacs of course, and Evil mode, and lots of other packages fine people have worked hard on. It also includes plenty of my own customizations – after all, that’s the reason I came back to Emacs!

I’m still learning commands, tweaking key bindings, and customizing my setup to get everything just right. But I have never been happier editing text than with Emacs and Vim, and I can’t imagine I’ll ever go back to whatever I was doing before.

Approx. 754 words, plus code