I think the characteristic that better defines VIM in respect to other editors is its wide array of motion commands. The first thing to learn to fully use VIM is hitting the arrow keys as little as possible, and think at the text in terms of "blocks" like "a sentence" "a tag" "a word" "a group of brackets".
Say you have function foo($bar, $fooz)
you can change the parameters by simply positioning your cursor anywhere inside the brackets and pressing ci)
(mnemonic: change inner bracket). The same pattern applies to other commands: yank (y
), delete (d
) and so on.
I know this doesn't explain the whole "VIM philosophy" but combining normal mode commands with the vast amount of motion modifiers is what really made me see the light.