After learning Emacs, which derives its awesomeness from the amazingly large set of stuff it knows how to do, I found vim to be good for other reasons. Vim is good because with very, very few commands, you can do things much quicker.
The "f" or "t" commands, combined with the fact that you can use "c", are just amazing. Same with the "i" (inner) command. Those few commands alone can make editing any line faster and funner.
(Technically it's a motion, not a command. "i" as a command just enters insert mode.)
To elaborate, since this is one of my favourite vim features, say you have the following code:
do_something_with(some + long * complicated * expression)
^
Say your cursor is where the caret indicates. Typing 'ci)' ("change inside parens") in normal mode will:
* delete all the text between the two matching parens
* place you in insert mode with the cursor between the two (now adjacent) parens
* put the deleted text in the yank buffer so that 'p' will paste it.
The use case here is obviously so you can assign a name to that long complicated expression. 'ci)' is much easier than selecting it with the mouse, and keeps your hands on the keyboard where they belong ;)
With nested parentheses, it does what you expect (affects the text contained by the innermost matching pair to contain your cursor - try it and see).
And if you like operating inside of matching pairs, just think how much you'll like manipulating the pairs themselves! http://github.com/tpope/vim-surround
After learning Emacs, which derives its awesomeness from the amazingly large set of stuff it knows how to do, I found vim to be good for other reasons. Vim is good because with very, very few commands, you can do things much quicker.
The "f" or "t" commands, combined with the fact that you can use "c", are just amazing. Same with the "i" (inner) command. Those few commands alone can make editing any line faster and funner.