The ubiquity of vi

Mac OS X    2008-12-01

Whenever a conversation about tools comes up, I find myself, inevitably, putting on a sheepish grin and confessing that yes, in fact, I am a vi user.

And I'll be honest - in my early days as a developer, I just wanted to earn a little respect.

Go ahead, make your wisecracks about still not respecting me now ... I'll wait ...

...

Done? Okay.

So what was a green girl developer to do to be taken seriously? I mean, I can't grow a beard. But I could abandon my tool dependencies. So these days I develop in a largely GUI-free world.

But I'm tired of treating it like a dirty little secret - vi (and its clone app vim) offers a lot of advantages.

  1. The big one (and the one that it never occurred to me to articulate before now) is its ubiquitousness. I develop locally on OS X, so I do all my work in a terminal. I can work just as fluidly in any Linux/Unix environment. I'm not lost when I jump up to a production server.
  2. I do everything else on the command line, so why not? When I'm editing with vi, I can transition easily to navigating around my applications, cracking open a database or two, running a test script, tailing a log, and checking in code and scp'ing files up to a server, all without ever having to leave the terminal. And for what that's worth, I'm convinced that vi has had the extended effect of making me better at using other command line tools.
  3. I rarely have to worry about the learning curve when it comes to adapting to someone else's IDE of choice. I can jump right into any job and hit the ground running.
  4. Not using an IDE forces me to carry a top-down view of my applications' structures around in my head. I'm sure that not everyone considers this beneficial, but to extend a notion that Jacob Kaplan-Moss brought up a few days ago, it fits with the way I think.

Besides, does your IDE have one of these?