
Also habe ich versucht, einen einfachen Hauptmodus (Berichtsmodus) zu schreiben.mitals Beispiel. Bei mir scheint alles zu funktionieren, außer dass die Tastenbelegung nicht richtig zu passen scheint.
Wenn ich das tue, C-h f report-mode
wird mir korrekt eine Liste der Tastenzuordnungen mit der von mir vorgenommenen Ergänzung angezeigt, und zwar:
ESC n kill-dupe
Wenn ich jedoch auf USE Mn oder ESC n gehe, passiert nichts. Ich kann die Funktion manuell über aufrufen, M-x kill-dupe
das scheint also nicht das Problem zu sein.
Da sich die Maschine in einem anderen Netzwerk befindet, kann ich den eigentlichen Elisp-Code leider nicht kopieren und einfügen.
Ich kann das genaue Beispiel, das ich verwendet habe, kopieren (und die Ersetzungen vornehmen):
(defvar report-mode-map
(let ((map (make-sparse-keymap "Report-Mode")))
(define-key map "\M-n" 'kill-dupe)
map)
"Keymap for browsing report mode")
Das kommt vonHier.
Wenn ich „report-mode-map“ untersuche, sehe ich, dass es größtenteils richtig aussieht, außer dass es zusätzliche Schlüsselwörter keymap
innerhalb von „inside“ enthält:
(keymap (27 keymap (110 . kill-dupe)) keymap (....) "Report-Map" (....))
Wenn ich dies beispielsweise mit Text-Mode-Map vergleiche, sind die Definitionszeichenfolge von Sparse-Key-Map sowie zusätzliche „Keymap“-Zeichenfolgen eingebettet. Wenn ich auswerte, (keymapp report-mode-map)
erhalte ich das Ergebnis „true“, was darauf hindeutet, dass das unterschiedliche Format kein Problem darstellt ...
Und schließlich bin ich mir ziemlich sicher, dass es ein Problem IST, da auch keine der anderen Tastenbelegungen funktioniert.
Über alle Ideen freue ich mich. Entschuldigen Sie nochmals, dass ich den Code nicht direkt einfügen konnte.
Antwort1
Also habe ich die Antwort gefunden.
Es stellte sich heraus, dass ich meine benutzerdefinierte Tastenbelegung define-derived-mode
nie aufgerufen hatte .use-local-map
einmal habe ich eingefügt:
(use-local-map report-mode-map)
Alles hat prima geklappt.