Jake Worth

30 Days of Vim

September 23, 2014

It’s been a month since I started using Vim full-time; it’s time to reflect.

To summarize, Vim is awesome, because it is fast, endlessly customizable, and fun. I am a convert and would like to thank all the passionate Vim-heads who proselytized to me so many times. Fair warning, I am now one of those people.

To start with, Vim is fast. My speed has at least doubled since switching. One big area of improvement has been the smaller tasks which I might call ‘minor annoyances’. These are small bugs or syntax issues that are worth fixing but are low priority, tasks that I once postponed or ignored. With Vim, I just fix them, without much thought. Staying in one window is conducive to the coveted ‘flow’ state.

Vim is a mouse-free editor. I have nothing against mice; this year I bought a great vertical mouse. The mouse is a valuable tool that’s been part of the PC package since almost the beginning.

But is it necessary? I’m skeptical. No matter how you set it up, taking your hand off the keyboard breaks concentration. Since switching to Vim I have tried to find a command or hotkey for every time I might use a mouse, speeding up my computing in general.

Second, Vim is endlessly customizable. Or, to be accurate, you must customize it! Vim is barely usable out-of-the box. My dotfiles, forked from a programmer lineage tracing back to Ryan Bates, make Vim awesome. I enjoy the fact that each setting is mine to choose, and I can make Vim as featured or austere as I want. More tools should be made that way.

My .vimrc adds line numbers, colors, file-specific indentation, a marker at 80 characters, and many other hacks. It’s indispensable.

Third, Vim is fun. There is an inherent gamification with Vim that’s addictive. When you watch another Vim user, you’ll see commands you’ve never seen, that do the things you do better and faster.

Vim represents the endless pursuit of efficiency. The pursuit never ends, and I think that fact just appeals to the programmer mind.

A recent example for me was discovering macros. Pressing ‘q’ and then any other letter turns on a recorder that follows every action you take, until you press ‘q’ again. Pressing ’@’ followed by your chosen letter then executes the macro. And then pressing ’.’ will repeat the last command (the macro call in this example). This simple tool allows for some crazy automation. Press a single key and duplicate a half-hour of work? Sounds pretty good.

To reiterate the steps I took to learn Vim: read the documentation, experiment, and most importantly, remove any other option. Disable your arrow keys, disconnect your mouse, uninstall your favorite editor, and deal with being slow for a while. It won’t last.

You might discover a new way of working that is faster, more personal, and fun.

Jake Worth

I'm Jake Worth, a developer at Hashrocket based in Chicago. Blog About Now