I have my entire .vim directory on github. You can see my plugins folder here:<p><a href="http://github.com/ninjagod/etc/tree/master/vim/plugin/" rel="nofollow">http://github.com/ninjagod/etc/tree/master/vim/plugin/</a><p>I've been using Vim for three years or so. Apart from the usual bunch of plugins (NERD_tree, snipmate, etc), I have a few scripts I like:<p>Pretty much everything by Tim Pope - surround.vim, matchit.vim, fugitive, etc.<p>Fuzzy finder. I don't know how I survived without this until a few months ago. It allows you to enter a search term, and returns fuzzy matches, and you can jump to any of the matches. Things that Fuzzy finder supports include files, buffers, tags, help, etc.<p>Bufexplorer: One more of my favorites. "\be" brings up a little text file which you can use to manage your buffers. This is similar to Emacs' buffer explorer (C-x C-b). Except since this is also a text buffer, you can use common motions to delete, switch, save buffers, etc. (Another item is minibufexplorer, which shows all the buffers like "tabs". I stopped using this after switching to a more emacs-esque way of keeping buffers open and using only one gvim window").<p>Bufkill.vim: Is a very useful little tool for me. I use splits a lot, and sometimes killing a buffer closes the split. This small tool has been invaluable. :BD closes the buffer, but keeps the splits in place.<p>Eclim: You can use Eclim as a frontend for eclipse. I use some fancy eclipse IDEs sometime like CDT, PyDev, Aptana, etc. But eclipse's editor isn't spectacular. Eclim allows me to use vim as the editor and lets eclipse do the heavy lifting - autocomplete, project management etc.<p>Supertab: Use Tab for all your insert mode completion. Somehow any form of intelligent completion was always very flaky for me with vim. Still, I map this to keyword complete, which is usually pretty helpful.<p>Remotes: This isn't a plugin, but a native feature. You can use Vim remotes to keep one instance of gvim running and use "gvim --remote" instead of "gvim" to open files inside a single instance, rather than open each file inside a terminal, and close it when you're finished. I found this really helps improve productivity.<p>I even aliased "vim" and "vi" to map to the remote editor. You can see my tiny workaround for this:
<a href="http://github.com/ninjagod/etc/blob/master/zshrc#L31" rel="nofollow">http://github.com/ninjagod/etc/blob/master/zshrc#L31</a><p>I would recommend you read Peter Krumin's articles on various vim plugins, etc.