The buzz cut

Ramblings from the barbershop

A Month With Vim: Weeks 3 & 4

| Comments

My third and fourth weeks with Vim brought clarity. I broke through the learning curve of Vim, stopped tinkering with my environment, and had developed muscle memory for things like switching between insert and normal mode. I no longer needed the Vim cheat sheet in my bookmarks toolbar, and I completed all the levels in Vim Adventures. I was finally ready to see if my productivity was any better. And you know what? It wasn’t. I wish it had been, but the reality was, there was no measurable improvement to my productivity.

Vim is a very good text editor. It provides endless customization, some really cool plugins, and tremendous control over moving through files. Using Vim has given me a new appreciation of split paneling, using keystrokes for EVERYTHING, and never leaving the editor. If you’re coming from TextMate, or Pico/Nano, or another archaic editor, you’re certain to become more productive in Vim in due time, but if you’re coming from SublimeText, you probably won’t notice a massive improvement. Ultimately, it’s just another flavor of great editors, and you have to decide which flavor you prefer.

In my case, I can now say that prefer SublimeText. I code 100% of the time on my MBPr, and I never use peripherals. I use a lot of key mappings to get around, but if I need to use the mouse or the arrow keys, my hands don’t move far away from the home row to make a significant different. I’ve never felt slow, and Vim didn’t make me noticeably faster.

I spent my first two weeks trying to make Vim look and feel like SublimeText, but no matter what plugins were available, they never quite mimicked the experience. NerdTree and CommandT just never felt right. Vim Rails annoyed me that I had to have a “rails” file open in order for it to work. I never found a project-wide search that I loved. I never got around to looking for a plugin to mimic SublimeText’s “Quick Add Next” feature. I spent the final two weeks letting Vim be Vim; working more with buffers, named registers, and panels. Ultimately I decided that there was no use in tinkering with Vim to make it more like SublimeText, and the “pure Vim” experience wasn’t as good as the pure SublimeText experience.

All is not lost though. Firstly, I like to make educated decisions. Secondly, my experiment with Vim has inspired me to improve how I use SublimeText. I now use RubyTest to run tests directly within SublimeText, Origami to manage split paneling, and I’m beginning to learn the keyboard shortcuts that weren’t already in my repertoire.

Thanks to everyone who helped make this experiment worthwhile. I hope that this series of posts helps others navigate their own experiment, and decide which flavor they prefer. If you have any questions along the way, feel free to reach out to me.