See 19.9.2 Regexp Replacement in the Emacs info file:

   In `replace-regexp', the NEWSTRING need not be constant: it can
   refer to all or part of what is matched by the REGEXP.  `\&' in
   NEWSTRING stands for the entire match being replaced.

           Mark

On 5/25/2012 12:18 PM, Raymond Zeitler wrote:
Hi MBR:

To me, the search and replace syntax you're using is incorrect.  Or perhaps \&  
is an undocumented feature -- you did mention that it sometimes works.

I would search for "\([A-Z]\)" and replace with "SPC\1".

HTH

- Ray

-----Original Message-----

Date: Thu, 24 May 2012 19:15:40 -0400
From: MBR<m...@arlsoft.com>
To:help-gnu-em...@gnu.org,help-emacs-windows@gnu.org
Subject: [h-e-w] Why do replace commands sometimes not work?

-snip-
The purpose of this part of the macro is to turn CamelCase into space-separated 
words.

         M-<                     ;; Go to beginning of narrowed buffer
         M-x replace-regexp RET
         [A-Z] RET              ;; Find any capital letter
         C-q SPC \&  RET         ;; Replace it with a space followed by itself
         M-<                     ;; Go to beginning of narrowed buffer
         C-d                    ;; Delete the unwanted space before the
         first letter

So, if the narrowed portion of the buffer contains:

         "JohnJacobJingleheimerschmidt"

after running this portion of the macro, it should contain:

         "John Jacob Jingleheimerschmidt"

Instead, when run in Emacs 23, the result is:

         "ohnJacobJingleheimerschmidt"

which is exactly what you'd expect if the M-x replace-regexp failed to do the 
replacement that it should have.  -snip-




No virus found in this message.
Checked by AVG - www.avg.com <http://www.avg.com>
Version: 2012.0.2171 / Virus Database: 2425/5024 - Release Date: 05/26/12

Reply via email to