字节编译次模式键绑定时无效的键映射错误

时间:2016-06-01 04:17:47

标签: emacs compiler-errors keymaps minor-mode

我的.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不太熟练。是否有其他方法来定义键映射,以便字节编译器识别它?

1 个答案:

答案 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