Substitution
Syntax#
s/<pattern>/<pattern>/optional-flags<pattern>is a Regex
Parameters#
| Flag | Meaning |
|---|---|
| & | Keep the flags from the previous substitute. |
| c | Prompt to confirm each substitution. |
| e | Do not report errors. |
| g | Replace all occurrences in the line. |
| i | Case-insensitive matching. |
| I | Case-sensitive matching. |
| n | Report the number of matches, do not actually substitute. |
Remarks#
Use set gdefault to avoid having to specify the ‘g’ flag on every substitute.
Example
When gdefault is set, running :s/foo/bar on the line foo baz foo will yield bar baz bar instead of bar baz foo.
Simple replacement
:s/foo/bar Replace the first instance of foo with bar on the current line.
:s/foo/bar/g Replace every instance of foo with bar on the current line.
:%s/foo/bar/g Replace foo with bar throughout the entire file.
Quickly refactor the word under the cursor
-
* on the word you want to substitute.
-
:%s//replacement/g, leaving the find pattern empty.
Replacement with interactive approval
:s/foo/bar/c Marks the first instance of foo on the line and asks for confirmation for substitution with bar
:%s/foo/bar/gc Marks consecutively every match of foo in the file and asks for confirmation for substitution with bar
Keyboard short-cut to replace currenlty highlighted word
For example, with following nmap:
nmap <expr> <S-F6> ':%s/' . @/ . '//gc<LEFT><LEFT><LEFT>'select a word with *, type Shift-F6, type in a replacement and hit Enter to rename all occurrences interactively.