[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Key bindings [was : Re: Proposal: "C-z <letter>" reserved for users]
From: |
Drew Adams |
Subject: |
Key bindings [was : Re: Proposal: "C-z <letter>" reserved for users] |
Date: |
Tue, 9 Feb 2021 17:13:26 +0000 |
> But I think nobody is arguing to put anything to C-z by default - only
> to make it unbound and free for the user to do whatever s/he wishes.
1. Users can bind or unbind _ANY_ keys they like.
This has always been the case, and it's stated
clearly in the doc.
2. Emacs binds many keys by default. This is for
user convenience. The choice of which keys are
bound by default is the result of lots of
periodic discussion, but it's also the result
of history and precedent, and there are _lots_
of users who have long finger-memory habits.
Changes to default key bindings have been made
conservatively, in general (historically).
3. Emacs _reserves_ some keys for _users_ to bind.
That is, they are ONLY for users to bind. This
convention is meant to prevent Emacs itself,
and 3rd-party code that wants to play well with
others and with users, from binding these keys.
4. 3rd-party code (libraries/packages) can bind any
keys that are not reserved for users. And it
can, yes, bind keys that have default bindings.
The latter case can conflict with what users
generally expect - they expect the default
bindings. (It also entails the usual risk of
conflicting with bindings from other 3rd-party
code.)
Use of 3rd-party code is optional, so this is
"OK", as long as a library makes the situation
clear (i.e., doc). A library can also make
key bindings easy to remove or change. And it
can alternatively just _suggest_ key bindings,
instead of providing them by default.
5. IMHO, there is problem now, and it's growing,
in that Emacs itself has been binding more and
more keys by default. There are few top-level
keys available now. This is a problem for
3rd-party code.
6. IMHO, Emacs should not only desist from binding
more keys by default (a moratorium, at least).
It should state, in its conventions, that _ALL_
keys currently unbound by default should remain
so for the foreseeable future (exceptions to be
allowed by the maintainers, after general
discussion).
7. IMHO, Emacs should discuss and find some good
ways to consolidate/restructure some of the
default key bindings, to both (1) free up more
keys for 3rd-party code, (2) try to put more
keys on prefix keys (to free more up), and (3)
otherwise use keys that are naturally repeating
(just hold them down) for repeatable commands.
It should also make some non-repeatable commands
repeatable (e.g., keys such as `C-a', `C-e',
`M-m'.)
8. Let me repeat #1. Even keys that Emacs binds
by default are open for users to bind
differently or unbind.
The current (and longstanding) conventions for
key binding are specified here:
(elisp) `Key Binding Conventions'.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Key-Binding-Conventions.html
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Key bindings [was : Re: Proposal: "C-z <letter>" reserved for users],
Drew Adams <=