Previous: Replacement and Case, Up: Replace [Contents][Index]
Replace some occurrences of string with newstring.
Replace some matches for regexp with newstring.
If you want to change only some of the occurrences of ‘foo’ to
‘bar’, not all of them, you can use query-replace
instead of
M-%. This command finds occurrences of ‘foo’ one by one,
displays each occurrence, and asks you whether to replace it. A numeric
argument to query-replace
tells it to consider only occurrences
that are bounded by word-delimiter characters.
Aside from querying, query-replace
works just like
replace-string
, and query-replace-regexp
works
just like replace-regexp
.
The things you can type when you are shown an occurrence of string or a match for regexp are:
to replace the occurrence with newstring. This preserves case, just
like replace-string
, provided case-replace
is non-nil
,
as it normally is.
to skip to the next occurrence without replacing this one.
to replace this occurrence and display the result. You are then
prompted for another input character. However, since the replacement has
already been made, DEL and SPC are equivalent. At this
point, you can type C-r (see below) to alter the replaced text. To
undo the replacement, you can type C-x u.
This exits the query-replace
. If you want to do further
replacement you must use C-x ESC ESC to restart (see Repetition).
to exit without doing any more replacements.
to replace this occurrence and then exit.
to replace all remaining occurrences without asking again.
to go back to the location of the previous occurrence (or what used to
be an occurrence), in case you changed it by mistake. This works by
popping the mark ring. Only one ^ in a row is allowed, because
only one previous replacement location is kept during query-replace
.
to enter a recursive editing level, in case the occurrence needs to be edited rather than just replaced with newstring. When you are done, exit the recursive editing level with C-M-c and the next occurrence will be displayed. See Recursive Edit.
to delete the occurrence, and then enter a recursive editing level as in C-r. Use the recursive edit to insert text to replace the deleted occurrence of string. When done, exit the recursive editing level with C-M-c and the next occurrence will be displayed.
to redisplay the screen and then give another answer.
to display a message summarizing these options, then give another answer.
If you type any other character, Emacs exits the query-replace
, and
executes the character as a command. To restart the query-replace
,
use C-x ESC ESC, which repeats the query-replace
because it
used the minibuffer to read its arguments. See C-x ESC ESC.
Previous: Replacement and Case, Up: Replace [Contents][Index]