[prog] replacement strings

Miriam English mim at miriam-english.org
Mon May 24 21:53:17 UTC 2010


Thanks John. I've always eyed emacs with a kind of longing. I know it is 
an unusually powerful editor, partly because of its intimate 
relationship with lisp.

Years ago I dabbled with it, but found the commands even more arcane 
than vi's. At about the same time I learned a smattering of lisp, 
largely because it was the golden baby of AI. People's reactions to lisp 
always seem to be either "It is incredibly beautiful" or "It is 
incredibly ugly". Unfortunately, no matter how much I tried, I found 
myself in the latter group. All those goddamn brackets.

You can use emacs without lisp (though that's like having a flying car 
and only using it to drive down the road to the corner shop), but when 
emacs' interface differs so completely from every other editor on the 
planet I find it hard to motivate myself to take on the steep learning 
curve. That is what has retarded my use of vi, and is even more true of 
emacs. And this is why there was that big move to unify interfaces all 
those years ago.

Thank you for the pointer to emacs. You've given me more good reasons to 
consider it, and I may still go for it at some point, but time doesn't 
really permit at the moment. [sigh]

Like I said to Sam, so much to learn, so little time. :/

	- Miriam

john.sturdy at ul.ie wrote:

> The regexp replacement facilities in Emacs got even more wonderful in
> Emacs 22, with a couple of new \ thingies on the replacement side:
> 
> \# gives the number of replacements done so far (so you can number lists, etc)
> 
> \( begins an Emacs-Lisp expression, the result of which is inserted,
> so for example to force things that look like UK-style postcode elements to
> upper-case you could replace
> 
> \<[a-z][a-z]?[0-9][0-9]?\>
> 
> with
> 
> \(upcase \&)
> 
> where \< \> mean start and end of word, and \& means the whole matched
> text.
> 
> You can combine \# and \( too, if you want to number things but not
> counting from 0, or not counting in ones, or converting to letters,
> e.g. to count from 42 upward you can use \(+ \# 42)
> 
> See
> http://steve-yegge.blogspot.com/2006/06/shiny-and-new-emacs-22.html
> for more examples.  (I'm glad I'm not the only person who gets excited
> about new editor facilities!)
> 
> __John
> 
> 

-- 
If you don't have any failures then you're not trying hard enough.
  - Dr. Charles Elachi, director of NASA's Jet Propulsion Laboratory
-----
Website: http://miriam-english.org
Blog: http://miriam_e.livejournal.com


More information about the Programming mailing list