Choosing Vim

When I decided to learn touch typing five years ago, I knew it would slow down my typing for a while. So I chose that time to also learn a new keyboard layout, Colemak. It was the one good time to switch to an optimized layout. This year, I wanted to learn to use a text editor more efficiently. It was a good time to choose an optimized editor.

I hadn’t previously learned a text editor deeply. Apart from generic copy/paste, undo/redo, select all, and skip across words, I could use multiple cursors in the text editor Sublime Text and some keyboard shortcuts in the software development environment IntelliJ.

My learning theme this year had been about improving my command-line game. Hence, I narrowed my editor choice down to Vim and Emacs.

For a while during my research, I got hung up on how Vim uses the HJKL keys to navigate. The QWERTY keyboard layout places HJKL neatly on the home row below four fingers of the right hand; the Colemak layout requires stretching the right index finger for all of them. Many Colemak Vim users have remapped these keys. I generally steer clear of early customizations and add to my dotfiles slowly and deliberately because I want to understand deeply what I’m doing there.

Eventually, I came across a forum post where someone recommended to just leave the default keymapping on. The author pointed out that when you’re efficient with Vim, you don’t press a lot of HJKL anyway, which navigate per character. Instead you navigate more efficiently by multiple characters, words, sentences, paragraphs, marks or searches. That argument won me over.

I disliked two things about Emacs. First, there’s Emacs’s menu bar. I was approaching the choice of text editor with the intent to become proficient and learn a lot of keyboard commands, and something immediately rubbed me the wrong way about looking at a menu bar. Second, articles about Emacs quickly jumped into how Emacs can do all sorts of other things apart from text editing. I liked minimalism and the “do one thing well” philosophy; I didn’t want to choose a tool that brought lots of things I didn’t want.

So I picked Vim. I started learning with vimtutor, which amazingly is a standard command on Linux that will bring up Vim with a text file that teaches you to use Vim right in that text file itself. I proceeded to buy a paperback version of Learning the vi and Vim editors by Arnold Robbins. And of course I wrote and edited this article in Vim.