[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Deprecation of define-key?
From: |
Philip Kaludercic |
Subject: |
Re: Deprecation of define-key? |
Date: |
Tue, 02 Aug 2022 09:54:42 +0000 |
Augusto Stoffel <arstoffel@gmail.com> writes:
> On Sat, 30 Jul 2022 at 13:51, Lars Ingebrigtsen <larsi@gnus.org> wrote:
>
>> Philip Kaludercic <philipk@posteo.net> writes:
>>
>>> That is obvious, the question is should package developers avoid using
>>> `define-key' if possible or not?
>>
>> As the doc string says -- `keymap-set' is the recommended function to
>> use. However, `define-key' is not (and won't be) obsoleted, so it's up
>> to them to follow the recommendation (or not).
>
> I didn't catch any of the previous discussion about keymap.el, but I
> have a comment -- sorry if redundant.
>
> Wouldn't it make sense to let keymap-set take multiple key-definition
> pairs as arguments, like setq et al? This would be very convenient
> e.g. in user configuration files, where currently one often finds long
> sequences of define-key calls.
One thing I still don't understand about keymap (which is part of the
reason I initiated this thread), is who the "target audience" is, if
any? Core development, ELPA packages in general, user configurations,
or someone else?
> This looks much better to me:
>
> (keymap-set some-map
> "a" 'command-a
> "b" 'command-b
> "c" 'command-c)
Not quite the same, but that is what `defvar-keymap' allows you to do. E.g.
(defvar-keymap gnus-undo-mode-map
"C-M-_" #'gnus-undo
"C-_" #'gnus-undo
"C-x u" #'gnus-undo
;; many people are used to type `C-/' on GUI frames and get `C-_'.
"C-/" #'gnus-undo)
Just in this case binding a variable and defining a map is merged into
one, instead of modifying an existing map.