help-gnu-emacs
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]