Ich habe die Taste 'd' erneut gedrückt gnus-article-mode
, aber das alte Verhalten ist immer noch aktiv, wenn sich der Punkt auf einem Anhang befindet. Ich kann sehen, dass die erneute Bindung dort dadurch nicht wirksam geworden ist C-h k d
, aber sie sagt mir nicht, welche Keymap zu diesem Zeitpunkt wirksam ist, so dass ich sie erneut binden kann.
Gibt es eine Möglichkeit, es herauszufinden?
Hier ist ein genaues Beispiel: Ich verwende das Böse und möchte, dass Artikel im Bewegungsmodus sind. Für mein Tastaturlayout habe ich "d" als die Taste konfiguriert, die nach oben gehen soll.
(evil-mode 1)
(add-to-list 'evil-motion-state-modes 'gnus-article-mode)
(setq evil-emacs-state-modes (remove 'gnus-article-mode evil-emacs-state-modes))
(define-key evil-motion-state-map "d" 'evil-previous-line)
Um sicherzustellen, dass die bösen Schlüssel berücksichtigt werden, habe ich den Gnus-Schlüssel in der lokalen Karte deaktiviert:
(defun as/alter-article-evil-map ()
(local-unset-key "d"))
(add-hook 'gnus-article-mode-hook 'as/alter-article-evil-map)
Wenn sich der Punkt auf einem Anhang befindet, wird die Taste 'd' leider nicht mehr angezeigt, aber ich kann den Anhang löschen. Ich denke, an diesem Punkt ist eine andere Bindung aktiv, daher die Frage.
Lösung Ich habe das keymaps-at-point
Folgende verwendet, um die verwendete Keymap aus einer Texteigenschaft zu ermitteln. Ich habe mir dann den Code der gebundenen Funktion angesehen, um den Namen der Keymap zu finden gnus-mime-button-map
. Der folgende Code macht was ich will:
(defun as/alter-article-evil-map ()
(define-key gnus-mime-button-map "d" nil))
(add-hook 'gnus-article-mode-hook 'as/alter-article-evil-map)
Searching Keymaps
. Siehe auch KnotenFunctions for Key Lookup
undActive Keymaps
.