From: David Kastrup Date: Fri, 25 Jun 2004 11:02:08 +0000 (+0000) Subject: (Regexp Replace): Some typo corrections and X-Git-Tag: ttn-vms-21-2-B4~5634 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=1ed5c59cbbd40b07b3f72e64994bff310814ab32;p=emacs.git (Regexp Replace): Some typo corrections and rearrangement. --- diff --git a/man/ChangeLog b/man/ChangeLog index 74f161fc51e..a3fbdf4d2e2 100644 --- a/man/ChangeLog +++ b/man/ChangeLog @@ -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 --git a/man/search.texi b/man/search.texi index 9b065a8fac8..6eafedf7749 100644 --- a/man/search.texi +++ b/man/search.texi @@ -1018,12 +1018,13 @@ performs the inverse transformation. 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: @@ -1031,13 +1032,23 @@ do it also this way: @example M-x replace-regexp @key{RET} \(x\)\|y @key{RET} \,(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 @@ will add labels starting with @samp{\label@{fn:0@}} to occurences of 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