Team Vim

I learned vi a long time ago, but I never could make it work for me as my primary text editor. About once a year I would try, but it always just seemed like a mess of a .vimrc config file and a pile of esoteric plugins. I also think the idea of remapping keys is silly.

At this point people go usually bananas.

I’ve been fortunate to have the opportunity to go to a few conferences recently. While at Ruby On Ales I recounted a recent conversation on Twitter where there was some, um, fervor expressed. I was talking with Nickolas Means (@nmeans), who said that the key to a vim workflow was really to get a handle on tmux. Then slowly build into vim.

I filed that away and had some time recently to go back to it.

I quickly realized that I liked having different workspaces that I could jump in and out of without having a whole lot of terminal windows open and tabs. That’s actually pretty damn amazing. Being able to split the window into panes and have multiple windows and all that. You tmux nerds are already all over this, of course.

There was still something holding me back from full-on project editing adoption, though. Moving around a big project is a real pain in the ass in vim. I’m not down with NERDTree either. I want a minimalist vim config, and you can see a directory and pick a file in vim already without any additional goofy plugins.

I got the tip that I needed in a workshop session at RailsConf that Eileen Uchitelle (@eileencodes) gave. CTags.

Money.

Now I can jump around in a sane way to related things.

Other things that are pretty killer: I’ve always liked the search and replace functionality in vim, and the ability to jump to lines. Yes other editors also have this, but it makes more sense in vim. There are some other things like not having to have your cursor on a line to edit it or align things.

Anyways, I’m sort of on team vim now. I’m not foaming at the mouth about it or anything, but I think I’ve made it past the “giant pile of esoteric plugins” to “useful tool” stage.

Thanks to Nick and Eileen for your tips. And thanks also to Geoff Petrie (@geopet) for being really cool and offering to do a screen share pairing session to understand my workflow so that we could both learn something from each other. I’ll take you up on that offer at some point, Geoff.

Leave a Comment

Filed under programming