Right, so Abe Lincoln supposedly said, "Give me six hours to chop down a tree and I will spend the first four sharpening the axe." OK, sure, maybe he said that. Old Abe must have been a software programmer, because we love our tools. We start wars over them. As you probably didn't care to know, I changed employment recently. Let's just say that I moved from Company A to Company B. I realized that my Vim skills are a bit stiff, having built up some bad habits at my previous job. The issue is how much time it takes to get to a file in a directory structure. I was so familiar with the source trees that I knew where everything was most of the time, so I would just hit colon-e-space and then start typing folder names, tab completing them and the name of the file I wanted to edit. That alone is faster than moving to the mouse and just navigating the tree through clicks, but it doesn't really work out for all-new code bases.
Solution 1: Have another bash shell handy, use the unix tool 'find' or grep through file contents with ack, find the file name that way, then open it using the aforementioned 'slow' way. This solution is slow, takes lots of extra keystrokes and context switching.
Solution 2: I had another go with NERDTree. It's basically a file tree navigator plugin for Vim, even uses the mouse if you really want to suck. Trees suck. I used it with the keyboard. It's not bad, and I keep it around if I want to sort of visually explore the code base. It didn't really help me find files any faster. I was still switching to the shell to find them.
Solution 3: Command-T is a Vim plugin designed to emulate TextMate's supposedly magical file finder/opener thingy. Basically, it is magical. You invoke the plugin (it's backslash-t by default) and start typing, it does a fuzzy match on folder and file names to get to the file you want. It's really good. The tricky part is getting it installed. First of all you need the version of vim that has all the scripting extensions installed. On Ubuntu, you can install vim-nox instead of vim-basic. You'll also need the ruby and ruby-devel packages. After that you can pretty much install it like any other Vim plugin, except that you have to build a C component that the Ruby code uses to the fuzzy matching so quickly. Just read the README.
That's the happy ending... Oh, but you wanted more Vim goodness? OK, fair enough, snipMate is another bit of awesome stolen from TextMate and transmitted into the world of Vim. It's just the code snippets functionality. Go check it out, you'll thank me later.

