Why does vim increment (Ctrl+A) skip 8s and 9s?

I'm trying to write a long XML catalog using vim macros to write all the repetitive stuff. I've found it's useful to write a macro yanking the previous entry, then going through each item and incrementing it with Ctrl+A. Vim does OK with incrementing 001 to 002, all the way through 007, but then it increments 007 to 010! Also, bizarrely, it increments 008 to 9, taking out the leading zeros.

Does anyone know what is causing this bizarre bug, and how to fix it?


set nrformats-=octal

will handle it. The problem you're having is because Vim considers numbers starting with 0 octal or hex, depending. More on that in

help 'nrformats'