From: Drew Adams <drew.adams@oracle.com>
To: Robert Thorpe <rt@robertthorpeconsulting.com>,
Dmitry Gutov <dgutov@yandex.ru>
Cc: "joostkremers@fastmail.fm" <joostkremers@fastmail.fm>,
"help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
Subject: RE: [External] : Re: not good proposal: "C-z <letter>" reserved for users
Date: Sat, 13 Feb 2021 20:48:11 +0000 [thread overview]
Message-ID: <SA2PR10MB4474A5DC64E0BF9FCF3C44D6F38A9@SA2PR10MB4474.namprd10.prod.outlook.com> (raw)
In-Reply-To: <877dnc4dwf.fsf@robertthorpeconsulting.com>
> >> I think that user-friendliness is beneficial. It would help with
> >> that if packages could bind some keys by default.
> >
> > The current tradition is that a package provides a major or minor
> mode
> > (or several), puts one of them in their init file, and *those*
> install
> > some default keymaps.
> >
> > auto-mode-alist entries, however, can be added through autoloads.
>
> Yes. But I don't think that solves the problems that Gregory Heyting
> and Drew Adams are talking about.
>
> Firstly, it can't do anything about changes in keybindings in future
> Emacs versions. Drew tells us that Emacs has recently mapped "C-x x",
> "C-x p" and "C-x /". I'm using Emacs 27.1, so all of those must have
> been mapped for Emacs 28 (or perhaps the version after that).
To be clear, my understanding, from following bug
and emacs-devel threads, is as follows. Anyone
can correct me if I'm mistaken in any way.
1. `C-x p' was recently grabbed as a prefix key
for Project (by Dmitry, in fact) - over my pleas
and arguments not to. That was maybe 8 months ago?
Bookmark+ had, for many years, lots and lots of
keys on that prefix key. The only arguments by
Dmitry in favor of grabbing that key for Project
were, in effect, (a) we want to do it and (b) we
don't need to care what Bookmark+ has been using.
OK.
As a result of that, I changed Bookmark+ last July
to use `C-x x' instead. (There was no mention of
`C-x x' in that discussion, and it was unbound.)
2. Recently, Lars decided to bind `revert-buffer'
to `C-x x g'. There was subsequent discussion
about using that prefix key `C-x x' for things
related to buffers, in general. I don't know
exactly what's been done in that regard.
Needless to say, I again objected, saying that
I've moved Bookmark+ keys from prefix `C-x p' to
`C-x x', and asking that they not now usurp also
`C-x x'. But AFAIK, `C-x x' has, yes, now been
grabbed by Emacs as a default global binding.
(There was quite a lot of objection, BTW, to the
idea that Emacs needs a _global_ key for reverting
a buffer. I'm not even sure there was _anyone_
arguing in favor of that, besides the maintainer
who came up with the idea.)
3. There was talk in emacs-devel (or a bug thread?)
about binding `C-x /' by default. I don't know
what finally happened in that regard. But I chimed
in about that too, saying that I use that prefix key
for zones.el. I mentioned this while pointing out
there is a _general_ problem here: Emacs grabbing
more keys for default bindings, leaving 3rd-party
code with fewer and fewer options.
4. I'll mention too that for Bookmark+ when I
changed from `C-x p' to `C-x x' I added a user
option for which key to use. So users can deal
with the new conflict themselves, if I don't
end up trying yet another key as the default.
> The author of a third party package can't easily
> deal with that. What if their minor mode used
> "C-x x"? In that case it will remove the keymaps
> of a core feature (or the core feature will remove
> it's keymap).
Indeed. And the anecdotal stories from me are
just that: one user's experience. There's a long
history (future) in front of us. This problem
will only become exacerbated. The field of keys
that are not used by default Emacs is small and
dwindling. And that, precisely at a time when the
development of 3rd-party libraries is growing.
We are no longer in the old Wild West days of a
vast, open new continent to colonize.
_Some_ solution is needed for this problem, which
will only increase. _Because_ I objected recently,
raising this as a general problem, there has been
some discussion. But the main Emacs maintainer has
declared that there is _no_ such problem. End of
story, perhaps, but not, IMO, end of problem.
I proposed one possible solution - a _moratorium_
by Emacs from grabbing more keys by default. Look
up the word "moratorium", if you aren't familiar
with it.
If you like, you can consider my proposal to be:
Let's at least STOP now from binding any more keys
by default, while we entertain discussion for other
possible solutions. And as long as no adequate
solution, preferably somewhat consensual, is found,
Emacs just shouldn't bind more keys. It can
repurpose keys that are already bound by default,
but it should stay away from binding new ones.
And I explicitly allowed for _exceptions_, to be
decided by the maintainers - after some general
discussion. So IMO, this is not at all a radical
proposal. It's essentially "STOP THE BLEEDING!"
as a _first step_.
> As Gregory Heyting has pointed out, what about
> packages that are not modes? Not every package
> is a minor mode or major mode.
In fact, I'm pretty sure that most - maybe all -
libraries are not simply implementations of a mode.
Dealing with a mode, especially in terms of key
bindings, isn't really problematic. Especially a
minor mode. Sure, there can still be some key
conflicts, but that's nothing new. Users juggle
multiple minor modes already.
> So, how should other types of package behave?
>
> Lastly, the usability issue is still there.
> I think beginners find this kind of thing difficult.
> These days there are lots of Emacs "starter kits"
> that claim to make Emacs simpler. A lot of what
> they do is configuring third-party packages.
>
> Philip Kaludercic suggested some code for prompting
> users before mapping keys. I think that's a good idea.
Maybe that could be part of a solution. But many
users will not appreciate, or not be prepared for,
making such key-binding decisions at the outset and
on the fly. And prompting would likely be in some
order, e.g., the first package loaded would prompt
first, or the first prompt would occur when the
first key conflict is detected.
There are lots of details and things to consider.
But I'm glad that at least some people are seriously
considering the problem and starting to think about
it.
Unfortunately, the main threads in emacs-devel about
this, kind of got hijacked by interjecting the
possibility of changing some existing Emacs default
key bindings. I specifically wanted to avoid that,
or rather, to move that to a parallel, and longer
discussion.
I really would like to see us, FIRST, stop the
bleeding by agreeing that Emacs should stop binding
default keys while we figure things out and, SECOND,
start discussing solutions in parallel, with less
urgency, carefully. And that discussion can, yes,
consider particular _existing_ key bindings and
possibilities of refactoring Emacs default key
bindings.
But the first step should be to agree to stop the
bleeding: "Emacs: hands-off new default keys, please."
next prev parent reply other threads:[~2021-02-13 20:48 UTC|newest]
Thread overview: 239+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1973673328.2493716.1612740554692.ref@mail.yahoo.com>
2021-02-07 23:29 ` Proposal: "C-z <letter>" reserved for users S Boucher via Users list for the GNU Emacs text editor
2021-02-07 23:46 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-08 2:06 ` Howard Melman
2021-02-11 1:37 ` Christopher Miles
2021-02-11 13:52 ` Howard Melman
2021-02-11 16:58 ` [External] : " Drew Adams
2021-02-12 3:31 ` Christopher Miles
2021-02-08 3:31 ` Eli Zaretskii
2021-02-08 16:22 ` Francis Belliveau
2021-02-08 21:19 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-09 0:52 ` Skip Montanaro
2021-02-09 1:03 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-09 5:58 ` Marcin Borkowski
2021-02-09 12:19 ` Skip Montanaro
2021-02-09 13:44 ` Marcus Harnisch
2021-02-09 16:48 ` Gregory Heytings
2021-02-09 16:53 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-09 17:24 ` Skip Montanaro
2021-02-09 17:33 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-09 17:43 ` Skip Montanaro
2021-02-09 17:35 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-09 17:45 ` Skip Montanaro
2021-02-09 23:55 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-10 1:50 ` no job control in this shell (was: Proposal: "C-z <letter>" reserved for users) Skip Montanaro
2021-02-10 5:22 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-10 10:49 ` Proposal: "C-z <letter>" reserved for users Jean Louis
2021-02-09 17:24 ` Skip Montanaro
2021-02-11 0:52 ` Francis Belliveau
2021-02-09 5:55 ` Marcin Borkowski
2021-02-09 6:41 ` not good proposal: " Jean Louis
2021-02-09 7:51 ` Yuri Khan
2021-02-10 10:13 ` Jean Louis
2021-02-10 10:43 ` Jean Louis
2021-02-09 8:07 ` Marcin Borkowski
2021-02-10 10:21 ` Jean Louis
2021-02-09 9:13 ` Gregory Heytings
2021-02-09 9:31 ` C-z, C-c, job control commands [was: not good proposal: "C-z <letter>" reserved for users] tomas
2021-02-09 12:22 ` Skip Montanaro
2021-02-10 10:36 ` not good proposal: "C-z <letter>" reserved for users Jean Louis
2021-02-10 12:46 ` Marcin Borkowski
2021-02-10 19:14 ` Jean Louis
2021-02-10 19:31 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-10 19:42 ` Jean Louis
2021-02-10 19:31 ` Gregory Heytings
2021-02-10 19:49 ` Jean Louis
2021-02-10 20:20 ` Gregory Heytings
2021-02-11 7:54 ` Robert Thorpe
2021-02-11 8:30 ` Joost Kremers
2021-02-11 13:15 ` Gregory Heytings
2021-02-12 10:14 ` Joost Kremers
2021-02-12 13:00 ` Gregory Heytings
2021-02-12 16:48 ` Joost Kremers
2021-02-12 17:33 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-12 8:10 ` Robert Thorpe
2021-02-12 12:37 ` Dmitry Gutov
2021-02-13 7:37 ` Robert Thorpe
2021-02-13 8:50 ` Jean Louis
2021-02-13 14:17 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-13 20:48 ` Drew Adams [this message]
2021-02-13 21:17 ` [External] : " Jean Louis
2021-02-13 22:23 ` Dmitry Gutov
2021-02-13 23:38 ` Philip Kaludercic
2021-02-14 18:30 ` Drew Adams
2021-02-15 4:23 ` Robert Thorpe
2021-02-13 23:47 ` Dmitry Gutov
2021-02-15 4:49 ` Robert Thorpe
2021-02-15 18:28 ` Dmitry Gutov
2021-02-16 7:18 ` Jean Louis
2021-02-16 7:26 ` Jean Louis
2021-02-11 8:45 ` Gregory Heytings
2021-02-12 5:42 ` Robert Thorpe
2021-02-12 8:44 ` Gregory Heytings
2021-02-12 9:58 ` Joost Kremers
2021-02-12 12:40 ` Dmitry Gutov
2021-02-12 12:47 ` Gregory Heytings
2021-02-12 19:07 ` Howard Melman
2021-02-12 20:56 ` Jean Louis
2021-02-12 21:05 ` Howard Melman
2021-02-16 12:38 ` ken
2021-02-12 21:07 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-13 7:54 ` Jean Louis
2021-02-13 8:03 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-13 9:01 ` Jean Louis
2021-02-13 14:21 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-12 20:04 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-12 20:10 ` Philip Kaludercic
2021-02-12 20:51 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-12 20:45 ` Jean Louis
2021-02-12 20:57 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-13 8:28 ` Robert Thorpe
2021-02-13 9:56 ` Jean Louis
2021-02-13 14:43 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-13 14:55 ` math (was: Re: not good proposal: "C-z <letter>" reserved for users) Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-13 15:08 ` Jean Louis
2021-02-13 15:20 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-13 15:29 ` Jean Louis
2021-02-13 20:32 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-13 15:09 ` Make Super key work in console - was " Jean Louis
2021-02-13 15:23 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-13 15:33 ` Jean Louis
2021-02-13 20:26 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-16 11:55 ` OT: more praise to Tramp - was: Re: Make Super key work in console - was Re: math ken
2021-02-13 23:43 ` console key tutorial, revised (was: Re: Make Super key work in console - was Re: math (was: Re: not good proposal: "C-z <letter>" reserved for users)) Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-14 5:17 ` Jean Louis
2021-02-14 6:21 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-14 8:05 ` Jean Louis
2021-02-14 8:37 ` Yuri Khan
2021-02-14 9:36 ` Jean Louis
2021-02-14 13:43 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-14 14:36 ` Jean Louis
2021-02-14 8:58 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-14 10:38 ` Snippet for website inquiries by using one click on the email address Jean Louis
2021-02-14 13:56 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-14 19:38 ` Make Super key work in console Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-15 11:10 ` Jean Louis
2021-02-15 16:36 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-15 18:06 ` Yuri Khan
2021-02-15 18:46 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-16 6:53 ` Jean Louis
2021-02-16 7:42 ` Yuri Khan
2021-02-16 11:03 ` Jean Louis
2021-02-20 14:32 ` Jean Louis
2021-02-20 15:26 ` Yuri Khan
2021-02-20 15:46 ` Stefan Monnier
2021-02-20 16:07 ` Eli Zaretskii
2021-02-20 16:16 ` Yuri Khan
2021-02-20 16:38 ` Yuri Khan
2021-02-21 5:31 ` Jean Louis
2021-02-21 7:18 ` Yuri Khan
2021-02-21 12:40 ` Jean Louis
2021-02-20 16:49 ` Stefan Monnier
2021-02-20 17:27 ` Eli Zaretskii
2021-02-20 18:13 ` Stefan Monnier
2021-02-20 18:19 ` Eli Zaretskii
2021-02-20 21:14 ` Stefan Monnier
2021-02-21 3:32 ` Eli Zaretskii
2021-02-21 20:11 ` Stefan Monnier
2021-02-21 4:56 ` Jean Louis
2021-02-21 5:06 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-21 5:42 ` Jean Louis
2021-02-21 6:10 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-22 4:59 ` Jean Louis
2021-02-24 15:37 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-12 20:26 ` not good proposal: "C-z <letter>" reserved for users Jean Louis
2021-02-12 21:08 ` Dmitry Gutov
2021-02-13 7:59 ` Jean Louis
2021-02-13 12:30 ` Dmitry Gutov
2021-02-13 7:12 ` Eli Zaretskii
2021-02-13 8:37 ` Jean Louis
2021-02-13 9:09 ` Eli Zaretskii
2021-02-13 10:14 ` Jean Louis
2021-02-13 8:17 ` Robert Thorpe
2021-02-14 0:35 ` Dmitry Gutov
2021-02-14 1:54 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-14 7:58 ` Jean Louis
2021-02-14 8:33 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-14 9:34 ` Jean Louis
2021-02-14 13:18 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-14 14:29 ` Jean Louis
2021-02-14 15:26 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-14 17:22 ` Jean Louis
2021-02-14 17:56 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-15 4:12 ` Robert Thorpe
2021-02-15 18:15 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-15 18:24 ` tomas
2021-02-16 1:30 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-16 6:05 ` Stefan Möding
2021-02-16 21:58 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-16 7:13 ` Jean Louis
2021-02-16 22:07 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-20 14:39 ` Jean Louis
2021-02-20 19:14 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-17 8:55 ` Robert Thorpe
2021-02-17 23:23 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-18 6:29 ` Robert Thorpe
2021-02-20 14:54 ` Jean Louis
2021-02-20 19:21 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-21 6:02 ` Jean Louis
2021-02-21 6:21 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-14 8:03 ` Jean Louis
2021-02-14 8:46 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-14 10:21 ` Jean Louis
2021-02-14 13:27 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-14 10:24 ` handling viewport in HTML - was " Jean Louis
2021-02-14 13:48 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-14 14:37 ` Jean Louis
2021-02-14 15:21 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-14 16:26 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-14 19:44 ` Dmitry Gutov
2021-02-14 19:50 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-14 13:11 ` Dmitry Gutov
2021-02-14 13:16 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-14 7:58 ` Jean Louis
2021-02-14 8:43 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-14 10:16 ` Jean Louis
2021-02-14 13:21 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-14 14:31 ` Jean Louis
2021-02-14 22:13 ` Dmitry Gutov
2021-02-15 0:39 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-15 2:23 ` Dmitry Gutov
2021-02-15 6:16 ` Who use C-x u or C-/ for undo? Who uses C-z for undo? Jean Louis
2021-02-15 17:59 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-16 6:52 ` Jean Louis
2021-02-15 17:56 ` not good proposal: "C-z <letter>" reserved for users Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-15 18:03 ` tomas
2021-02-15 6:06 ` Jean Louis
2021-02-15 18:31 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-16 7:22 ` Jean Louis
2021-02-15 4:18 ` Robert Thorpe
2021-02-15 5:51 ` Jean Louis
2021-02-15 18:20 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-16 6:57 ` Jean Louis
2021-02-16 22:02 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-14 11:28 ` Philip Kaludercic
2021-02-14 12:55 ` Dmitry Gutov
2021-02-14 13:14 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-14 20:22 ` Dmitry Gutov
2021-02-14 20:49 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-11 14:32 ` Jean Louis
2021-02-11 16:58 ` [External] : " Drew Adams
2021-02-12 7:18 ` Robert Thorpe
2021-02-12 17:51 ` Drew Adams
2021-02-13 7:46 ` Robert Thorpe
2021-02-08 10:03 ` Proposal: " Colin Baxter
2021-02-08 20:20 ` Leo Butler
2021-02-09 6:02 ` Marcin Borkowski
2021-02-09 12:23 ` Dmitry Gutov
2021-02-09 12:41 ` Gregory Heytings
2021-02-09 12:56 ` Dmitry Gutov
2021-02-09 13:04 ` Gregory Heytings
2021-02-10 10:54 ` Jean Louis
2021-02-09 13:05 ` Bastian Beranek
2021-02-09 15:59 ` Skip Montanaro
2021-02-09 16:11 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-09 16:19 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-09 20:14 ` Dmitry Gutov
2021-02-09 20:50 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-02-09 20:18 ` Joost Kremers
2021-02-10 10:57 ` Jean Louis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=SA2PR10MB4474A5DC64E0BF9FCF3C44D6F38A9@SA2PR10MB4474.namprd10.prod.outlook.com \
--to=drew.adams@oracle.com \
--cc=dgutov@yandex.ru \
--cc=help-gnu-emacs@gnu.org \
--cc=joostkremers@fastmail.fm \
--cc=rt@robertthorpeconsulting.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).