Итак, я попытался написать простой основной режим (режим отчета), используя в качестве примера. Кажется, у меня все работает, за исключением того, что раскладка клавиатуры на самом деле не отображается.
Если я делаю C-h f report-mode
я правильно вижу список ключевых карт с добавлением, которое я сделал, а именно:
ESC n kill-dupe
Однако, когда я иду на ИСПОЛЬЗОВАНИЕ Mn или ESC n, ничего не происходит. Я могу вручную вызвать функцию через M-x kill-dupe
так что это не проблема.
К сожалению, поскольку компьютер находится в другой сети, я не могу скопировать и вставить фактический код elisp.
Я могу скопировать в точный пример, который я использовал (и сделать подстановки):
(defvar report-mode-map
(let ((map (make-sparse-keymap "Report-Mode")))
(define-key map "\M-n" 'kill-dupe)
map)
"Keymap for browsing report mode")
который идет отсюда.
Если я исследую report-mode-map, я вижу то, что выглядит в основном правильно, за исключением того, что в нем есть дополнительные ключевые слова keymap
:
(keymap (27 keymap (110 . kill-dupe)) keymap (....) "Report-Map" (....))
Если я сравню это, скажем, с text-mode-map, то в него будет встроена строка определения sparse-key-map и дополнительные строки 'keymap'. Если я получу eval (keymapp report-mode-map)
я получу результат true, так что это может указывать на то, что другой формат не является проблемой ...
Наконец, я почти уверен, что это проблема, потому что ни одна из других привязок клавиш не работает.
Любые идеи будут великолепны. Еще раз извините за то, что не смогли напрямую пройти код.