unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* quick 'perform last replace again'
@ 2008-04-21 10:12 Phil Carmody
  2008-04-21 11:49 ` David Kastrup
  0 siblings, 1 reply; 7+ messages in thread
From: Phil Carmody @ 2008-04-21 10:12 UTC (permalink / raw)
  To: help-gnu-emacs

Subject line seems to describe the question succinctly.

I've been inserting some typedefs in some C code, and using 
query-replace to turn uint8_t's into whatever_t's. However,
I'm only changing a small proportion of each match, so it 
became a drag. I'd rather just have the ability to move and 
scroll around the file (so _not_ in query-replace mode), and 
when I spot something that needs to be changed I'd like to 
just move the cursor onto the line containing it, press some 
magic key sequence, and have it replace either the first 
(or all) instances of the most-recently-used match with the
most-recently-used replacement on the current line. I do not
want to be left in query-replace mode - I want to then 
continue editing.

And by 'match' I don't mean the most recently used incremental
search, I mean the last thing used as a FROM-STRING in a 
replace-string or query-replace.

I'm quite prepared to have a solution which wraps those
functions in order to store some state.

It looks like it should be quite an easy task, but I'm
exceptionally rusty currently.

Cheers,
Phil
-- 
Dear aunt, let's set so double the killer delete select all.
-- Microsoft voice recognition live demonstration


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: quick 'perform last replace again'
  2008-04-21 10:12 quick 'perform last replace again' Phil Carmody
@ 2008-04-21 11:49 ` David Kastrup
  2008-04-21 20:15   ` Phil Carmody
  0 siblings, 1 reply; 7+ messages in thread
From: David Kastrup @ 2008-04-21 11:49 UTC (permalink / raw)
  To: help-gnu-emacs

Phil Carmody <thefatphil_demunged@yahoo.co.uk> writes:

> Subject line seems to describe the question succinctly.
>
> I've been inserting some typedefs in some C code, and using 
> query-replace to turn uint8_t's into whatever_t's. However,
> I'm only changing a small proportion of each match, so it 
> became a drag. I'd rather just have the ability to move and 
> scroll around the file (so _not_ in query-replace mode), and 
> when I spot something that needs to be changed I'd like to 
> just move the cursor onto the line containing it, press some 
> magic key sequence, and have it replace either the first 
> (or all) instances of the most-recently-used match with the
> most-recently-used replacement on the current line. I do not
> want to be left in query-replace mode - I want to then 
> continue editing.

C-x ESC ESC RET

Do the replacement with . (which is bound to act-and-exit).

Or use just M-% RET (which uses the defaults) and then . for
act-and-exit.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: quick 'perform last replace again'
  2008-04-21 11:49 ` David Kastrup
@ 2008-04-21 20:15   ` Phil Carmody
  2008-04-21 20:43     ` David Kastrup
  2008-04-21 21:33     ` Peter Dyballa
  0 siblings, 2 replies; 7+ messages in thread
From: Phil Carmody @ 2008-04-21 20:15 UTC (permalink / raw)
  To: help-gnu-emacs

David Kastrup <dak@gnu.org> writes:
> Phil Carmody <thefatphil_demunged@yahoo.co.uk> writes:
> > Subject line seems to describe the question succinctly.
> >
> > I've been inserting some typedefs in some C code, and using 
> > query-replace to turn uint8_t's into whatever_t's. However,
> > I'm only changing a small proportion of each match, so it 
> > became a drag. I'd rather just have the ability to move and 
> > scroll around the file (so _not_ in query-replace mode), and 
> > when I spot something that needs to be changed I'd like to 
> > just move the cursor onto the line containing it, press some 
> > magic key sequence, and have it replace either the first 
> > (or all) instances of the most-recently-used match with the
> > most-recently-used replacement on the current line. I do not
> > want to be left in query-replace mode - I want to then 
> > continue editing.
> 
> C-x ESC ESC RET

Fails horribly. And for good reason:

<<<
C-x ESC ESC runs the command repeat-complex-command
   which is an interactive compiled Lisp function in `simple'.
(repeat-complex-command ARG)

Edit and re-evaluate last complex command, or ARGth from last.
...
>>>

I don't want to do the last complex command, which may have
been a file open, or an incremental search, or practically
anything. I want to redo the last search and replace. I did 
say "perform last replace again" in my subject line for a 
reason. A file open, or an incremental search, or killing a 
buffer, or whatever, is not the last replace.
 
> Do the replacement with . (which is bound to act-and-exit).
> 
> Or use just M-% RET (which uses the defaults) and then . for
> act-and-exit.

That seems to also fail horribly. 

M-% RET does not use what I used in my last search and replace.
Quite what it does use, I don't know, but after a file open,
an incremental search, and killing a buffer, it doesn't have
any default. In fact, immediately after the M-%, there is no 
default either, it just thinks that I want to search for ''. 
I'm running GNU Emacs 21.4.1 and 21.2.1 on a variety of archs, 
they all behave the same way.

'.', however, was a useful addition to my day-to-day emacs-use
armory, so thanks for that.

Phil
-- 
Dear aunt, let's set so double the killer delete select all.
-- Microsoft voice recognition live demonstration


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: quick 'perform last replace again'
  2008-04-21 20:15   ` Phil Carmody
@ 2008-04-21 20:43     ` David Kastrup
  2008-04-21 20:45       ` Sven Joachim
  2008-04-21 21:33     ` Peter Dyballa
  1 sibling, 1 reply; 7+ messages in thread
From: David Kastrup @ 2008-04-21 20:43 UTC (permalink / raw)
  To: help-gnu-emacs

Phil Carmody <thefatphil_demunged@yahoo.co.uk> writes:

> David Kastrup <dak@gnu.org> writes:
>
>> Or use just M-% RET (which uses the defaults) and then . for
>> act-and-exit.
>
> That seems to also fail horribly. 
>
> M-% RET does not use what I used in my last search and replace.
> Quite what it does use, I don't know, but after a file open,
> an incremental search, and killing a buffer, it doesn't have
> any default. In fact, immediately after the M-%, there is no 
> default either, it just thinks that I want to search for ''. 
> I'm running GNU Emacs 21.4.1 and 21.2.1 on a variety of archs, 
> they all behave the same way.

If you insist on running outdated versions (I mean, even Debian stable
has switched to 22.1 quite some time ago), you should mention that in
your questions.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: quick 'perform last replace again'
  2008-04-21 20:43     ` David Kastrup
@ 2008-04-21 20:45       ` Sven Joachim
  2008-04-22 13:58         ` Joel J. Adamson
  0 siblings, 1 reply; 7+ messages in thread
From: Sven Joachim @ 2008-04-21 20:45 UTC (permalink / raw)
  To: help-gnu-emacs

On 2008-04-21 22:43 +0200, David Kastrup wrote:

> If you insist on running outdated versions (I mean, even Debian stable
> has switched to 22.1 quite some time ago)

I wish that were true.  Unfortunately, 22.1 only came out two months
after the latest Debian stable release.

> , you should mention that in your questions.

Sven


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: quick 'perform last replace again'
  2008-04-21 20:15   ` Phil Carmody
  2008-04-21 20:43     ` David Kastrup
@ 2008-04-21 21:33     ` Peter Dyballa
  1 sibling, 0 replies; 7+ messages in thread
From: Peter Dyballa @ 2008-04-21 21:33 UTC (permalink / raw)
  To: Phil Carmody; +Cc: help-gnu-emacs


Am 21.04.2008 um 22:15 schrieb Phil Carmody:

> I don't want to do the last complex command,


I have bound replace-string and replace-regexp to keys. When I press  
them again, GNU Emacs knows the from and to expressions – sometimes  
those from the other key, but never data from another command.

Could be this is a feature of GNU Emacs 22, too: C-x Esc Esc allows  
me to go back and forth in the chain of commands – by using cursor keys.

--
Greetings

   Pete

A morning without coffee is like something without something else.








^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: quick 'perform last replace again'
  2008-04-21 20:45       ` Sven Joachim
@ 2008-04-22 13:58         ` Joel J. Adamson
  0 siblings, 0 replies; 7+ messages in thread
From: Joel J. Adamson @ 2008-04-22 13:58 UTC (permalink / raw)
  To: Sven Joachim; +Cc: help-gnu-emacs

Sven Joachim <svenjoac@gmx.de> writes:

> On 2008-04-21 22:43 +0200, David Kastrup wrote:
>
>> If you insist on running outdated versions (I mean, even Debian stable
>> has switched to 22.1 quite some time ago)
>
> I wish that were true.  Unfortunately, 22.1 only came out two months
> after the latest Debian stable release.

Well, how's this then: Slackware-current now includes Emacs 22!  I was
disappointed that they didn't include it in Slackware 12.0, but they now
include 22.2, and will for a probable 12.1 release.  I thought that was
a little overboard in their habit of only including stable software
(even Emacs 23 only crashes on me once a week or so, and I can handle
that for the added benefits).

Joel

-- 
Joel J. Adamson
Biostatistician
Pediatric Psychopharmacology Research Unit
Massachusetts General Hospital
Boston, MA  02114
(617) 643-1432
(303) 880-3109
Public key: http://pgp.mit.edu

The information transmitted in this electronic communication is intended only
for the person or entity to whom it is addressed and may contain confidential
and/or privileged material. Any review, retransmission, dissemination or other
use of or taking of any action in reliance upon this information by persons or
entities other than the intended recipient is prohibited. If you received this
information in error, please contact the Compliance HelpLine at 800-856-1983 and
properly dispose of this information.







^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2008-04-22 13:58 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-21 10:12 quick 'perform last replace again' Phil Carmody
2008-04-21 11:49 ` David Kastrup
2008-04-21 20:15   ` Phil Carmody
2008-04-21 20:43     ` David Kastrup
2008-04-21 20:45       ` Sven Joachim
2008-04-22 13:58         ` Joel J. Adamson
2008-04-21 21:33     ` Peter Dyballa

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).