[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#25591: 25.1; M-% offers to repeat last search, but forgets that it w

From: Juri Linkov
Subject: bug#25591: 25.1; M-% offers to repeat last search, but forgets that it was a "symbol" search
Date: Wed, 15 Feb 2017 01:11:32 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (x86_64-pc-linux-gnu)

> Hm, I wasn't aware that M-% interprets the prefix arg to mean "word
> replace".  My instinct says it should honor the explicit C-u.

Even in your example, wouldn't it be confusing if after typing

C-a M-% RET !

and seeing this non-symbol prompt

Query replace (default i → u):

replacement will still be symbol-based
(because the previous replacement was symbol-based)?

To be not confusing the prompt should show explicitly
the replacement type, e.g. in case of symbol replacement:

Query replace symbol (default i → u):

When we'll store the replacement type in the history,
then maybe display previous replacements in the minibuffer like

Query replace (default symbol i → u):

then typing M-p will pull a previous replacement into the minibuffer,
e.g. word-based:

Query replace (default symbol i → u): word foo → bar

where “word” is intangible part of the prompt.

>>> I don't know if this is a bug, but it's disappointing and inconvenient.
>>> Start emacs with -Q, and type into the *scratch* buffer these 10 characters:
>>>     I ate this
>>> Now do C-a to move point to the beginning of the line.
>>> Now replace the symbol "i" with "u":
>>>    M-s _ i M-% u RET !
>>> So far, so good: we are looking at
>>>    U at this
>>> which is correct.
>>> Now try to repeat the replacement:
>>>    C-a M-% RET !
>>> This changes the "i" in "this" to a u, even though that "i" isn't an
>>> independent symbol.  I was hoping that it would do nothing.
>> But what if you mistakenly invoked the replacement in wrong mode,
>> and want to repeat the same replacement in the right one?  E.g.
>> first entered replacement strings in regexp replacement mode:
>> C-M-% i RET u RET
>> and then realized you want apply the same replacement strings
>> in word mode:
>> C-u M-% RET
>> Should it perform word replacement as explicitly stated
>> by the prefix arg C-u, or use a previous replacement type
>> (in this case, regexp replacement) remembered in the
>> replacement history?

reply via email to

[Prev in Thread] Current Thread [Next in Thread]