Change One, Then Just Tap Dot

Why not :%s

A substitute is all or nothing. Often you do not want all of them — one match might be inside a string, where renaming it would be a bug.

The move

/\<total\>          " search, whole words only
cgn                  " change the next match
subtotal<Esc>        " type the new name
.                    " next one
.                    " and the next

gn means the next match of the last search, so cgn means change the next match. Because the change is defined that way, . does not just repeat the edit — it finds the next match first, then repeats.

Skipping one

When the next match is one you want to keep, press n to step over it, then carry on with ..

Mind the boundaries

Search with \< and \> when the new name contains the old one. Renaming total → subtotal without boundaries makes the search start matching its own output, and the renames pile up into subsubsubtotal.

The payoff

Five renames, one deliberately skipped, and a single keystroke each after the first. No substitute command, no confirm prompt, no plugin.