(emacs)Query Replace


Prev: Replacement and Case Up: Replace

Query Replace
-------------

`M-% STRING RET NEWSTRING RET'
`M-x query-replace RET STRING RET NEWSTRING RET'
     Replace some occurrences of STRING with NEWSTRING.

`M-x query-replace-regexp RET REGEXP RET NEWSTRING RET'
     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, then you cannot use an ordinary
`replace-string'.  Instead, use `M-%' (`query-replace').  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.  This preserves case, just like
`replace-string', provided `case-replace' is non-`nil', as it normally
is.

   Aside from querying, `query-replace' works just like
`replace-string', and `query-replace-regexp' works just like
`replace-regexp'.  The shortest way to type this command name is `M-x
qu SPC SPC SPC RET'.

   The things you can type when you are shown an occurrence of STRING
or a match for REGEXP are:

`SPC'
     to replace the occurrence with NEWSTRING.

`DEL'
     to skip to the next occurrence without replacing this one.

`, (Comma)'
     to replace this occurrence and display the result.  You are then
     asked for another input character, except that since the
     replacement has already been made, DEL and SPC are equivalent.
     You could type `C-r' at this point (see below) to alter the
     replaced text.  You could also type `C-x u' to undo the
     replacement; this exits the `query-replace', so if you want to do
     further replacement you must use `C-x ESC RET' to restart (*note
     Repetition::.).

`RET'
`ESC'
     to exit without doing any more replacements.

`. (Period)'
     to replace this occurrence and then exit without searching for more
     occurrences.

`!'
     to replace all remaining occurrences without asking again.

`^'
     to go back to the position 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 position is kept
     during `query-replace'.

`C-r'
     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' to proceed
     to the next occurrence.  Note: Recursive Edit.

`C-w'
     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' to proceed to the next occurrence.

`C-l'
     to redisplay the screen.  Then you must type another character to
     specify what to do with this occurrence.

`C-h'
     to display a message summarizing these options.  Then you must type
     another character to specify what to do with this occurrence.

   Some other characters are aliases for the ones listed above: `y',
`n' and `q' are equivalent to SPC, DEL and ESC.

   Aside from this, any other character exits the `query-replace', 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 line.

   To restart a `query-replace' once it is exited, use `C-x ESC', which
repeats the `query-replace' because it used the minibuffer to read its
arguments.  Note: C-x ESC.

   See also Note: Transforming File Names, for Dired commands to
rename, copy, or link files by replacing regexp matches in file names.


automatically generated by info2www