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)
)

エラーは bind-key 行にあります。bind-key の代わりに define-key を試したり、make-sparse-map の代わりに make-keymap を使用したりしましたが、うまくいきませんでした。私は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を に渡す必要があります。define-minor-mode

于 2016-06-01T16:02:57.877 に答える