Next: Regexp Replace, Previous: Replace, Up: Replace
To replace every instance of ‘foo’ after point with ‘bar’, use the command M-x replace-string with the two arguments ‘foo’ and ‘bar’. Replacement happens only in the text after point, so if you want to cover the whole buffer you must go to the beginning first. All occurrences up to the end of the buffer are replaced; to limit replacement to part of the buffer, narrow to that part of the buffer before doing the replacement (see Narrowing). In Transient Mark mode, when the region is active, replacement is limited to the region (see Transient Mark).
When replace-string
exits, it leaves point at the last
occurrence replaced. It sets the mark to the prior position of point
(where the replace-string
command was issued); use C-u
C-<SPC> to move back there.
A numeric argument restricts replacement to matches that are surrounded by word boundaries. The argument's value doesn't matter.
What if you want to exchange ‘x’ and ‘y’: replace every ‘x’ with a ‘y’ and vice versa? You can do it this way:
M-x replace-string <RET> x <RET> @TEMP@ <RET> M-< M-x replace-string <RET> y <RET> x <RET> M-< M-x replace-string <RET> @TEMP@ <RET> y <RET>
This works provided the string ‘@TEMP@’ does not appear in your text.