john
joseph
joe
jo
joan
We now want to replace the name jo with mo.
Our first try would be something like this: :%s/jo/mo. But this changes our text to the following:
mohn
moseph
moe
mo
moan
And this is not what we want. We only want the name jo to be replaced. Fortunately, Vim offers a special regular expression syntax that allows us to map whole words only: \< and \>
\< matches the beginning of a word and \> matches the end of a word. The end or beginning of a word is determined either by a punctuation mark or by a space.
Now we can use the following regex to change the name jo to mo: :%s/\<jo\>/mo
john
joseph
joe
mo
joan
Further examples:
\<jo | matches only the words that begin with jo; such as jo, joseph and john; but not mojos. |
our\> | matches only the words that end with our; such as your and tour; but not devouring. |