0

我的 .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)
)

错误在绑定键行上。我尝试过使用定义键而不是绑定键,或者使用 make-keymap 而不是 make-sparse-map 但没有运气。我对elisp不太精通。是否有其他方法来定义键映射以便字节编译器识别它?

4

1 回答 1

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)

您需要将keymap而不是符号(其值是 keymap)传递给define-minor-mode.

于 2016-06-01T16:02:57.877 回答