I've been using vi[m] for longer than I care to admit. While the article was mostly a rehash for me, I really appreciate the macro coverage in the followup. For some reason, I've never quite been able to keep that straight in my mind. I'll give it another go.

Here are a few items I use on a regular basis for [un]commenting and [un]indenting blocks of lines, and a bunch of other common tasks. I typically mark the start of a block as "a" and the end of the block as "b". So, some of these maps depend on that setting. The ctrl-m at the end of some lines forces a newline. That gets entered as ctrl-v, ctrl-m.