Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: TRAPINT breaks consecutive menu-complete
On Thu, Feb 6, 2025 at 10:51 PM Tomasz Pala <gotar@xxxxxxxxxx> wrote:
>
> That's clear - but what is above "top" level keybinding?
> Because that's where TRAPINT directs:
>
> $ ls [tab, tab -- starts menu completion] [ctrl-c]
> [tab, tab - nothing happens, 3rd tab required]
Hmm, this is a little different for me -- I get
[ctrl-c][tab - beeps][tab - menu appears][tab - begin cycling]
What's happening there is this bit from the doc:
... Otherwise, the shell will behave as
interrupted except that the return status of the trap is retained.
"The return status is retained" causes the action in progress -- in
this case, menu-selection -- to also return that status. Thus I get a
failed widget for the first tab and then two more are required to get
back into menu. This behavior is unique to menu-selection mode
because entering selection instantiates a new keymap context, which
must be left and re-entered to restart the menu. With default menu
completion you just get the whole command line killed.
> BTW returning 0 also behaves badly, as it leaves completion on, yet
> clears the menu below, so the completion entries appear after movement
I haven't been able to reproduce this except when I'm twiddling the
LINES value as in your earlier thread, but that doesn't mean there
isn't another way to get there that I haven't stumbled on. At a
guess, a call to "zle -R" as the last thing in the trap might fix it.
Messages sorted by:
Reverse Date,
Date,
Thread,
Author