Trying Out Emacs

Last updated 11 July 2015

When I started working at Reverb I had a medium amount of vim experience, mostly from programming on a chromebook. At Reverb, though, the expectation is that all programmers use vim (specifically mvim) using our CTO’s excellent vim configuration (which you can see here: to foster easy pairing.

I felt instantly pretty much as productive as I was in Caret or Sublime Text, which honestly wasn’t that productive. After a little bit, though, I was navigating both around the current file and through the very large Reverb codebase with ease, never touching the mouse, and doing all the things that make people love vim so much.

Naturally, this made me curious about emacs.

I had tried to go through the basic emacs tutor around the same time I was learning vim basics and quit almost immediately once I learned the incredibly perverse navigation commands. Not only did you have to hit control constantly, the keys to move the cursor were all over the place!

But, people still really love emacs so I was curious about why. I decided to give it a try, but using evil mode to use vim bindings within emacs. You might wonder what the point of using emacs at all is, if I’m just going to make it as much like vim as possible. Well, turns out it’s all the other stuff that emacs gives you.

Take a look at this screenshot:

Editing and using the internet in emacs

If you can’t tell, I’m editing a markdown file for the blog on the left while looking at the post in the brower on the right. In fact, the ability to browse the internet in a text only mode while having all my vim keybindings is the main reason I’m enjoying emacs so much.

I’m still pretty new at using emacs and am learning a lot, but so far I’m really glad I decided to give it a try. If I don’t give up soon, I’ll probably have more updates on my progress and configuration

Just imagine a world where you can use vim all the time: whether it’s for editing text, browsing the internet, or reading pdf files. The way to do it is to use emacs.