This is why I love vi

How about deleting everything up to the next slash? "df/" (delete, find character, slash). Delete the current paragraph? "dip" (delete inner paragraph). Delete current word? "diw" (delete inner word).

All the commands can be compounded, which is why it's so powerful. "d" is delete. "dd" is delete line, so "5dd" deletes 5 lines. Likewise, "d5l" deletes 5 characters to the right (l = move right; hjkl is used for movement, but arrow keys also work, so it's "delete 5 right"), and "d5k" (or d5 arrow up) deletes five lines upwards.

If you're standing on a character such as (), {}, [] or <> which has an opposite counterpart, d% will delete it and everything up to (and including) the matching one (not the next one, in case stuff's nested). Very useful when programming.

The learning curve is steep, and the rewards are great.