Subject: Re: bug#60530: 28.2; Add tools to find keymaps that bind a given command

From: Ruijie Yu <[email-masked]>
Date: Mon, 20 Feb 2023 20:01:27 +0800

Eli Zaretskii <[email-masked]> writes:

>> Cc: [email-masked]
>> Date: Mon, 20 Feb 2023 15:07:09 +0800
>> From:  Ruijie Yu via "Bug reports for GNU Emacs,
>>  the Swiss army knife of text editors" <[email-masked]>
>>
>> I saw this message long ago, but recently I came across a situation
>> where I wanted to know if a command was bound in *some* keymap whose
>> name I didn't know, and this would be quite a helpful feature for me
>> personally (pun intended).
>
> Isn't that what where-is and/or where-is-internal already do?

No, not quite.  The functions where-is{,-internal} only look for
*currently active keymaps*, whereas my intention was to look for all
keybinds for the specified command, be it active or not.

The following is my reason to want this feature.  I use pyim, an input
method that shows candidate words in a small frame (which I believe is
called posframe?), which has `pyim-mode-map' enabled.  Then, while
typing, I want to know how to call the `pyim-next-page' command without
going into pyim source.

If I type M-x where-is, this frame disappears, and I am dropped back
into the editing buffer, which does not have `pyim-mode-map' enabled.
Hence, `where-is' does not show anything bound for `pyim-next-page',
because it indeed is not bound globally.  FTR, C-h b does not work
either.

Similar situations can occur in other popup behaviors with temporary
keybinds, such as lsp-ui package (github.com/emacs-lsp/lsp-ui).

--
Best,

RY