Xah Talk Show 2025-09-07 Ep699 Emacs Lisp defvar-keymap, define-keymap , part 2

xah talk show ep699 16bbb
xah talk show ep699 16bbb

Video Summary

AI Generated (human edited)

This video focuses on updating Emacs Lisp code to use new, simpler key binding functions introduced in Emacs 29 (released two years ago).

Here's a summary:

;; HHHH------------------------------
;; BEFORE

(defvar xah-python-mode-map nil "Keymap for `xah-python-mode-mode'")
(progn
  (setq xah-python-mode-map (make-sparse-keymap))
  (define-key xah-python-mode-map (kbd "TAB TAB") #'xah-python-indent)
  (define-key xah-python-mode-map (kbd "TAB SPC") #'xah-python-complete-symbol)
  (define-key xah-python-mode-map (kbd "TAB r") #'xah-python-eval-region)
  (define-key xah-python-mode-map (kbd "TAB l") #'xah-python-eval-current-line)
  (define-key xah-python-mode-map (kbd "TAB f") #'xah-python-format-buffer))

;; HHHH------------------------------
;; AFTER

(defvar-keymap xah-python-mode-map
  :doc "Keymap for `xah-python-mode-mode'"
  "<tab> <tab>" #'xah-python-indent
  "<tab> SPC" #'xah-python-complete-symbol
  "<tab> r" #'xah-python-eval-region
  "<tab> l" #'xah-python-eval-current-line
  "<tab> f" #'xah-python-format-buffer)

emacs defvar-keymap