我的.emacs下面的代码工作正常,但是给了我一个"无效的键盘映射my-keys-mode-map"我尝试字节编译时出错。
(eval-and-compile
(defvar my-keys-mode-map (make-sparse-keymap) "my-keys-mode keymap.")
(define-minor-mode my-keys-mode
"A minor mode to override major modes keys."
t " my-keys" 'my-keys-mode-map)
(bind-key "C-;" (quote right-char) my-keys-mode-map)
(bind-key "C-j" (quote left-char) my-keys-mode-map)
)
错误发生在绑定键行上。我尝试过使用define-key而不是bind-key,或者使用make-keymap而不是make-sparse-map,但没有运气。我对elisp不太熟练。是否有其他方法来定义键映射,以便字节编译器识别它?
答案 0 :(得分:1)
删除define-minor-mode
中的键映射符号前面的引号。
换句话说,次要模式定义应为:
(define-minor-mode my-keys-mode
"A minor mode to override major modes keys."
t " my-keys" my-keys-mode-map)
您需要将键映射而非符号(其值为键映射)传递给define-minor-mode
。