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 nextgn 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.