Ошибка недопустимой таблицы ключей при байтовой компиляции дополнительных клавиш
Приведенный ниже код из моего.emacs работает нормально, но выдает ошибку "Invalid keymap 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. Есть ли какой-то другой способ определить карту ключей, чтобы она распознавалась байтовым компилятором?
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
,