The best thing is the efficiency with which you can edit code (which is done a lot in programming). The commands such as
- cw to change a word
- dw to delete a word
- ct, to change all text until the next comma
- ci( to change the contents of the parentheses you're currently in
- xp to correct spelling mistakes ("spleling" -> cursor on l -> xp -> "spelling")
- o to insert a new line below and start editing
- O to insert a new line above
Then there is the possibility to work with named registers very quickly. To move a block, just select it, press d, then move to it's new location and press p. Much faster than Ctrl-C and Ctrl-V. Use "ud to delete text and move it to register u (I use this one for the commenting template).
And also Vim has all the scripting support you need (either using it's native scripting language or using Python, Ruby, ...)