[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?