Was ist der beste Weg, um Tastenanschläge (z. B. über einen Hook) zu erkennen, die den Puffer nicht bearbeiten? Ich meine Dinge wie Pfeiltasten für Punktbewegungen, Anrufe an beginning-of-buffer
usw.
Der Grund dafür ist, dass ich an einigen ycmd
Bindungen für Emacs arbeite und (zumindest heuristisch) erkennen möchte, wann der Benutzer die Bearbeitung beendet hat und sich im Puffer bewegt. Dies ist ein guter Zeitpunkt, um den Pufferinhalt zum Parsen zu versenden. Der vim-Client führt dies aus, wenn der Benutzer den Einfügemodus verlässt und ich versuche, dieses Verhalten zu emulieren.
self-insert-command
empfohlen, einen Timer abzubrechen und neu zu planen, anstatt einen Leerlauf-Timer zu verwenden. Auf diese Weise wird der Timer nicht zurückgesetzt , selbst wenn der Benutzer etwas tut , es sei denn, das "Etwas" ist das Einfügen von Text.
after-change-functions
ist ein allgemeiner Mechanismus, um auf Textänderungen zu reagieren.
post-command-hook
. Das wird alles auslösen, daher müssen Sie möglicherweise etwas filtern, was es ausgelöst hat, bevor Sie die gewünschten Maßnahmen ergreifen.
buffer-chars-modified-tick
Funktion kann nützlich sein.