emacs-devel
[Top][All Lists]
Advanced

[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.




reply via email to

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