Most of the vim users know this this command: :% s/old/new/g. It’s a simple
replace all old with new, it’s a regular expression based substitution with
the g flag and % means do it on the whole file.
We can use any ranges instead of %. We can use the previously used :'<,'> s/old/new/g to do it on a visual selected section, we can use exact line
numbers like :10,33 s/old/new/g, or we can use relative line numbers like
:-10,. s/old/new/g which will replace all old with new between the cursor
and 10 lines above the cursor. Without a range, it operates on the active line.
That’s for the range part, what about the flag? We can use a lot more than g.
Here is a list of useful flags:
c: Confirm each substitution. It can be very useful if we want to replace some of them, but not all of them.g: Replace all occurrences in the line.i: Ignore case for the pattern.I: Don’t ignore case for the pattern. It’s useful if vim is configured to ignore case by default.
A lesser known fact, we can omit the old part if we did a search before.
If it’s empty, substitute will use the last search value as pattern. So we
search for old with /old, reviewed it and we want to replace all of them, we
can simply call :% s//new/g.