If you want to change only some of the occurrences of ‘foo’ to
‘bar’, not all of them, use M-% (
This command finds occurrences of ‘foo’ one by one, displays each
occurrence and asks you whether to replace it. Aside from querying,
query-replace works just like
(see Unconditional Replace). In particular, it preserves case
case-replace is non-
nil, as it normally is
(see Replacement and Case). A numeric argument means to consider
only occurrences that are bounded by word-delimiter characters. A
negative prefix argument replaces backward.
C-M-% performs regexp search and replace (
It works like
replace-regexp except that it queries
These commands highlight the current match using the face
query-replace. They highlight other matches using
lazy-highlight just like incremental search (see Incremental Search). By default,
query-replace-regexp will show the
substituted replacement string for the current match in the
minibuffer. If you want to keep special sequences ‘\&’ and
‘\n’ unexpanded, customize
The characters you can type when you are shown a match for the string or regexp are:
You can type C-r at this point (see below) to alter the replaced
text. You can also type C-x u to undo the replacement; this exits
query-replace, so if you want to do further replacement you
must use C-x <ESC> <ESC> <RET> to restart
Some other characters are aliases for the ones listed above: y, n and q are equivalent to <SPC>, <DEL> and <RET>.
Aside from this, any other character exits the
and is then reread as part of a key sequence. Thus, if you type
C-k, it exits the
query-replace and then kills to end of
To restart a
query-replace once it is exited, use C-x
<ESC> <ESC>, which repeats the
query-replace because it
used the minibuffer to read its arguments. See C-x ESC ESC.
search-invisible determines how
treats invisible text. See Outline Search.
See Operating on Files, for the Dired Q command which performs query replace on selected files. See also Transforming File Names, for Dired commands to rename, copy, or link files by replacing regexp matches in file names.