5

I want to replace all occurrences of a word in the whole buffer. What i do is:

M-x replace-string RET word-to-be-replaced RET new-word

The problem with this is that it also changes the word-to-be-replaced even if its only part of another word (for example wanting to change mod to off_mod results also changing set_mode to set_off_mode). How can i change it only in cases it exists exactly as a whole word and not also as parts of other words?

YoungFrog
  • 3,496
  • 15
  • 27

1 Answers1

13

If you provide the universal argument to replace-string, that is by pressing C-u before M-x replace-string, it only replaces matches that are surrounded by word boundaries.

So, for example, a buffer containing

mod
set_mode

would be become after C-u M-x replace-string RET mod RET off_mod

off_mod 
set_mode


You can find this information by looking in the manual: C-h i (to get the info index) m Emacs RET (to open the Emacs user manual section) and finding "replace-string" through the topic index by doing i replace-string RET.

Alternatively, you could look-up the function's documentation by doing C-h f replace-string

Inops
  • 333
  • 2
  • 8
  • 6
    +1, especially for teaching about the manual. Also: `C-h r` takes you to the Emacs manual, where `i replace-string` takes you directly to the doc about `replace-string`. **`i`** is your friend in Info. – Drew May 15 '16 at 00:21