Buffer-locally overriding minor-mode key bindings in Emacs

后端 未结 3 711
梦谈多话
梦谈多话 2020-12-15 18:48

I want to use a minor mode which rebinds a major-mode key that I definitely want to keep. How can I rebind the key without deleting it from the minor-mode map globally? I kn

3条回答
  •  北荒
    北荒 (楼主)
    2020-12-15 19:33

    It's a bit cumbersome to do. You can do something like:

    (add-hook '-hook
      (lambda ()
        (let ((oldmap (cdr (assoc ' minor-mode-map-alist)))
              (newmap (make-sparse-keymap)))
          (set-keymap-parent newmap oldmap)
          (define-key newmap [] nil)
          (make-local-variable 'minor-mode-overriding-map-alist)
          (push `( . ,newmap) minor-mode-overriding-map-alist))))
    

提交回复
热议问题