# HG changeset patch # User David Kastrup # Date 1088161328 0 # Node ID 09f1db905d2e34f338ad7591a3add00c01747513 # Parent b59328fbdeea031d9261db680881a3a5d43a9466 (Regexp Replace): Some typo corrections and rearrangement. diff -r b59328fbdeea -r 09f1db905d2e man/ChangeLog --- a/man/ChangeLog Thu Jun 24 23:34:10 2004 +0000 +++ b/man/ChangeLog Fri Jun 25 11:02:08 2004 +0000 @@ -1,3 +1,8 @@ +2004-06-25 David Kastrup + + * search.texi (Regexp Replace): Some typo corrections and + rearrangement. + 2004-06-24 David Kastrup * search.texi (Unconditional Replace): Use replace-string instead diff -r b59328fbdeea -r 09f1db905d2e man/search.texi --- a/man/search.texi Thu Jun 24 23:34:10 2004 +0000 +++ b/man/search.texi Fri Jun 25 11:02:08 2004 +0000 @@ -1018,12 +1018,13 @@ You can also use arbitrary Lisp expressions evaluated at replacement time by placing @samp{\,} before them in the replacement string. Inside -of those expressions, the symbols @samp{\&} and @samp{\@var{d}} refer to -match and submatch strings like described above (a submatch not matching -anything will be @samp{nil}), and @samp{\&#} and @samp{\@var{d}#} to -those strings converted to numbers. @samp{\#} is short for -@samp{replace-count}, the number of already completed replacements. -This particular shorthand can also be used outside of @samp{\,}. +of those expressions, the symbols @samp{\&} and @samp{\@var{n}} refer to +match and submatch strings like described above (though @var{n} may +exceed 9 here, and you get @code{nil} if nothing matches). @samp{\#&} +and @samp{\#@var{n}} refer to those strings converted to numbers. +@samp{\#} is short for @samp{replace-count}, the number of already +completed replacements. This particular shorthand can also be used +outside of @samp{\,}. Repeating our example to exchange @samp{x} and @samp{y}, we can thus do it also this way: @@ -1033,11 +1034,21 @@ \,(if \1 "y" "x") @key{RET} @end example + One function that comes handy in Lisp replacements is @samp{format} +(@pxref{Formatting Strings,,,elisp, GNU Emacs Lisp Reference Manual}). +For example, to add consecutively numbered strings like @samp{ABC00042} +to columns 73 @w{to 80} (unless they are already occupied), you can use + +@example +M-x replace-regexp @key{RET} ^.\@{0,72\@}$ @key{RET} +\,(format "%-72sABC%05d" \& \#) @key{RET} +@end example + Another feature you can use in the replacement string of Regexp commands is @samp{\?}. In that case you will be allowed to edit the replacement string at the given position before the replacement gets -performed. Lisp style replacements have already been done before -@samp{\?} is executed. For example, +performed. Lisp style replacements are performed before @samp{\?} gets +executed. For example, @example M-x replace-regexp @key{RET} \footnote@{ @key{RET} @@ -1050,15 +1061,6 @@ performing it. If you want labels starting at 1, use @samp{\,(1+ \#)} instead of @samp{\#}. -As another example, to add consecutively numbered strings like -@samp{ABC00042} to column 73 to~80 (unless they are already occupied), -you can use - -@example -M-x replace-regexp @key{RET} ^.\@{0,72\@}$ @key{RET} -\,(format "%-72sABC%05d" \& \#) @key{RET} -@end example - @node Replacement and Case, Query Replace, Regexp Replace, Replace @subsection Replace Commands and Case