@toglia: The strength of vim lies in text editing. Unfortunately I've found it somewhat difficult to explain, but the core to its strength is this: Where most standard text editors (including the integrated editor component in Visual Studio) basically focus on text insertion, i.e. whenever you type something, it will be inserted at the current cursor position, vim focusses on manipulation and navigation. vim's 'normal mode' does not let you enter text, instead everything you type will be interpreted as a vim command. If you type e.g. '53G', you will jump to line 53, typing '3d' will delete the next three lines from the cursor's position, etc.. There are several ways to go to the 'insert mode' where you actually insert text; a simple 'i' will start inserting before the cursor's position, 'I' will insert at the beginning of the line. Similar commands exist for inserting at the end or in a new line below or above the current one. Also you can start inserting by replacing existing text. For example, the command 'cib' will delete all text inside a pair of curly braces "(...)" and let you insert something else in there. And so on. It is really very handy, but you have to get used to it, and it takes a while.
One particular strong point that I really miss from many, many text editors is block selection. In vim you can select a block of text (i. e. 10 colums of 5 lines, instead of selecting the whole of the 5 lines), and then even insert something before or after the block which is immediately repeated for all lines in the block. Maybe you have had to do a task similar to this one: Given a list of some tokens (filenames or whatever),
which you copy-pasted from somewhere, and you need to transform then into a function call
There is more than one way to do this efficiently in vim, but one way is to select the tokens as a block and insert at the beginning: 'callSomeFunc(', and insert at the end ');', and vim will automatically repeat this for all the tokens in the block.
You can see that in action here:
http://www.youtube.com/watch?v=33oelVTGnAU
vim is not perfect, though. It is not a full IDE and even with some of the more advanced plugins it doesn't entirely feel like one, so you do miss out on some cool IDE features. In the end, for me personally I have found that I'm still more productive with vim than with the extra IDE features, but I'm not entirely satisfied. I guess this is why there exist vim plugins for a variety of IDEs; there's one for Visual Studio, but it's commercial. The quality of the plugins varies widely, one supposedly good one exists for netbeans, but I haven't tried that yet.