I do Ruby on Rails development pretty much exclusively. I currently develop in OS X using TextMate. I have a virtual machine running to emulate as closely as possible the enviro
All of the other answers plus:
Ability to have a (preferably) collapsible project tree visible either at all times or easily toggle-able.
:help mkview and :help mksession can help, too.Ability to see SCM status at a glance, either within this project tree (preferable) or otherwise. (I use git almost exclusively if this makes any difference.)
:help fugitive-statusline.Being able to view a side-by-side diff from within vim would be great too
:Gdiff command that does just that. to open a previous commit in another window and D to see a double diff.Code completion, if possible
, and will be more than enough, if you want "autocompletion" you may try these few plugins. My favorite is autocomplpop.