Subject: Re: bug#62207: 29.0.60; Trying to remove non-existent key binding instead adds a binding

From: Jonas Bernoulli <[email-masked]>
Date: Mon, 20 Mar 2023 19:46:56 +0100

Eli Zaretskii <[email-masked]> writes:

> Then Robert, please install on the emacs-29 branch the part of your
> suggested patch which fixes the problem with REMOVE.  The other part
> should go to master, I think.

The other part hasn't landed on master yet.  I agree it shouldn't go on
emacs-29, but would like to see it in master.  Stefan seems to have some
objections, which I believe boil down to "nobody has demonstrated a real
need yet, beside 'making the api complete'".

I don't have an immediate need, but I am fairly sure I would make use
of it eventually.  I haven't bothered with improving my personal key
bindings much lately, but plan to get back into the game eventually.

>From the top of my head I can think of the following use-case.

The which-key package displays available bindings in some sort of popup
buffer, not unlike "C-h m", but more dynamic and less verbose.  I would
like to (eventually) create a package to display a more curated list of
bindings.

A minimal viable version of that, for my own personal, use would display
the keys I personally reserve for "directional commands", namely
[MOD]-{j,i,k,l}, along with the commands they are bound to in the
current buffer/mode.  When I start using a new mode, I would bring up
that bindings buffer, and if it showed me that, for example, "k" was
bound to sacrifice-goat, instead of some *-previous, then I would know
I had to remove that binding for my own use and possibly make other
adjustments.

At this point it would be nice if there were some indication in what
keymap the default binding, this-mode-map or parent-mode-map.  The UI
could even allow directly jumping to the definition of the appropriate
keymap.  Eventually it might even be possible to make the changes
directly from the popup buffer.

If that is to vague or obscure, I am fine with the
ignore-bindings-in-parent feature not being installed on master just
yet.  But in that case we should probably open a new issue to track it.

     Cheers,
     Jonas