Ich bin in den frühen Phasen der Erstellung eines major mode for Emacs zum Durchsuchen und Interagieren mit dem Stack Exchange Network.Emacs Keybinding funktioniert nicht in benutzerdefinierten Hauptmodus
Daran beteiligt sind mehrere Hauptmodi, alle mit Ein-Tasten-Tastenbelegungen ähnlich . Ich suchte nach dired
an der Quelle und extrahiert, was ich dachte funktionieren würde:
(defvar stack-network-mode-map
(let ((map (make-keymap)))
(define-key map "n" 'stack-network-next-site)
(define-key map "p" 'stack-network-previous-site)
(define-key map "," 'stack-network-move-site-up)
(define-key map "." 'stack-network-move-site-down)
(define-key map "j" 'stack-network-jump-to-bookmarks)
(define-key map "\C-m" 'stack-network-do-enter-site) ; ret
(define-key map "o" 'stack-network-do-enter-site)
(define-key map "u" 'stack-network-do-profile-summary)
(define-key map "\C-uu" 'stack-network-do-profile-summary-for-user)
(define-key map "i" 'stack-network-do-inbox)
(define-key map "b" 'stack-network-toggle-bookmark)
(define-key map "?" 'stack-network-list-functions) ; [1]
(define-key map "\C-i" 'stack-network-display-details) ; tab
map)
"Keymap for Stack Exchange: Network Browser major mode")
aber leider scheint dies absolut keine Wirkung zu haben; Der Puffer wird einfach wie jeder andere normale Puffer bearbeitet. Wie kann ich eine Tastenbelegung erreichen, wenn dies nicht so ist? (Was übrigens, ich bin sicher, dass es ist. Hier muss etwas anderes los sein.)
Brauchen Sie mehr Detail .... Ich lade das Paket, das Sie beziehen, und es funktioniert gut. Alle Hauptmodusbindungen sind verfügbar (undefiniert). –
Definieren Sie keine Hauptmodi mit 'defun'. Verwenden Sie den 'define-derived-mode', der alle Voreinstellungen für Sie übernimmt, einschließlich des Tötens lokaler Variablen, Umschalten der Key-Map, Setzen von Major-Modus-Variablen, Ausführen der Hooks usw. – lunaryorn