Subject: bug#74999: [PATCH v3] Recommend `keymap-set' instead of `define-key' in emacs lisp intro

From: Eli Zaretskii <[email-masked]>
Date: Thu, 26 Dec 2024 10:20:11 +0200

> From: Hong Xu <[email-masked]>
> Date: Sat, 21 Dec 2024 00:03:54 -0800
> 
> * Since `define-key' is considered legacy and we encourage `keymap-set'
>   now.
> ---
>  doc/lispintro/emacs-lisp-intro.texi | 25 ++++++++++++++++++-------
>  1 file changed, 18 insertions(+), 7 deletions(-)

Thanks.  I tried to install this, but the git-commit hook rejected the
commit because Subject line is too long:

  Line longer than 78 characters in commit message
  Commit aborted; please see the file CONTRIBUTE

Please format the patch using "git format-patch", and please commit
the patch locally before you do so (assuming you have the hooks in
your local clone), to make sure these problems are corrected before
you send the patch here.

More generally, global-set-key, discussed earlier in this section, is
also obsolete, and we nowadays prefer keymap-global-set instead.  So,
if we want to modernize this part of the Emacs Lisp Intro manual, I
think we should replace all the key-binding examples and the
surrounding text in the manual to use the new keymap-* functions.  It
makes little sense to replace only define-key and leave the rest as
they were.

Would you like to submit a patch that takes care of these issues in a
more thorough manner?

> +While you are encouraged to use @code{keymap-set}, you likely would
> +encounter @code{define-key} in various places.  Historically, keymaps
> +are bound using a lower-level function, @code{define-key}, which
> +is now considered legacy.

These two sentences should be in reverse order: first tell that
historically we used define-key, then say that the reader is
encouraged to use keymap-set.

Thanks.