--- Begin Message ---
Subject: |
Mistyping a search breaks keyboard macro |
Date: |
Fri, 22 Sep 2023 11:09:59 +0300 |
User-agent: |
Evolution 3.48.4 |
If a user recorded a keyboard macro, upon replaying they expect the actions
will be executed exactly as performed during recording.
Unfortunately that doesn't hold for searches, which is unfortunate, because
search is very useful during keyboard-macros. If a user mistypes a search, they
usually just remove the offending letters and it just works. However replaying
such record fails with `Keyboard macro terminated by a command ringing the bell`
# Steps to reproduce
1. `emacs -Q`
2. Press `F3` to start recording a macro
3. Press `C-s` to start search and type `bufg`. The letter `g` will get
highlighted in red because there's no such word
4. Press Backspace to remove `g` letter
5. Press `f` so the word is `buff`
6. Finish the macro by pressing `F4`
7. Execute the macro by pressing `F4`
## Expected
Search succeeds
## Actual
Search fails with `After 0 kbd macro iterations: isearch-search: Keyboard macro
terminated by a command ringing the bell`
# Additional information
Emacs build from git as of commit 04710bd01b2
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#66149: Mistyping a search breaks keyboard macro |
Date: |
Sat, 23 Sep 2023 11:00:24 +0300 |
> From: Konstantin Kharlamov <Hi-Angel@yandex.ru>
> Cc: 66149@debbugs.gnu.org
> Date: Sat, 23 Sep 2023 10:14:59 +0300
>
> On Fri, 2023-09-22 at 18:41 +0300, Juri Linkov wrote:
> > >
> > I have no opinion whether 'ding' should terminate kbd macro or not.
> > But it's possible to customize 'isearch-wrap-pause' to 'no-ding'
> > to not ding on isearch failure, then kbd macro is not terminated.
>
> Oh, thank you! So for example, having the following code in the init
> file works around the problem:
>
> (defadvice kmacro-call-macro (around align-regexp-with-spaces activate)
> (let ((isearch-wrap-pause 'no-ding))
> ad-do-it))
>
> I'll post an answer about that on the emacs.stackexchange then.
And I'm closing the bug.
--- End Message ---