Von Zeit zu Zeit beobachte ich unerwartetes Verhalten beim Bearbeiten von Text. Meine erste Möglichkeit besteht normalerweise darin C-h k, herauszufinden, welche Funktionen von einer bestimmten Tastenfolge aufgerufen werden. Manchmal widerspricht die Dokumentation jedoch dem beobachteten Verhalten. In diesen Fällen gehe ich normalerweise davon aus, dass sich ein anderes Paket in diese Funktion oder Tastenfolge eingebunden hat und ihr Verhalten ändert.
Wie kann ich herausfinden, welche Funktionen in meine Tastenfolge eingebunden sind?
Ein Beispiel, auf das ich kürzlich gestoßen bin, war das Drücken der "Taste und das Einfügen von Anführungszeichen am Anfang und Ende des aktiven Bereichs. Ich hatte den Verdacht, dass dies nicht das Standardverhalten von Emacs war, also habe ich C-h k "herausgefunden, welche Funktion tatsächlich aufgerufen wurde.
Die describe-keyDokumentation hat mir gesagt , dass die Funktion self-insert-commandaufgerufen wurde, die eine eingebaute Funktion ist. Um es kurz zu machen, nach einigem Ausprobieren konnte ich feststellen, dass das Verhalten durch verursacht wurde electric-pair-mode. Gibt es in Zukunft einen schnelleren Weg, um zu dieser Schlussfolgerung zu gelangen, als verdächtige Pakete einzeln auszuschalten, bis der Täter gefunden ist?
electric-pair-modefunktioniert, indem man sich einhakt post-self-insert-hookund nicht, indem man die Tastenkombination ändert.
C-h ksagt Ihnen genau, was bei einem Tastendruck passiert. Wenn Sie sich die Dokumentation ansehen self-insert-command, wird sehr deutlich angezeigt, post-self-insert-hookdass der Befehl ausgeführt wird, nachdem er ausgeführt wurde.
after-change-functionswie Jordon in seiner Antwort erwähnt? In der Dokumentation einer Funktion wird dieser Haken wahrscheinlich nicht speziell erwähnt, oder?
C-h k+ die Standard-Hooks == das komplette Verhalten (mehr oder weniger). Natürlich lässt das manchmal eine Menge Möglichkeiten offen, aber es ist immer noch viel transparenter als jedes andere komplexe Softwaresystem, das ich kenne.


electric-pair-modenur in einigen Hauptmodi aktiviert wurde? Sehen Sie nochself-insert-commandfür ,"wenn Sie tun ,C-h kwährendelectric-pair-modeaktiv ist?