Qual è il modo migliore per rilevare sequenze di tasti (ad esempio tramite un hook) che non modificano il buffer? Intendo cose come i tasti freccia per indicare il movimento, le chiamate a beginning-of-buffer
, ecc.
La ragione di ciò è che sto lavorando su alcuni ycmd
binding per emacs e mi piacerebbe essere in grado di rilevare (almeno euristicamente) quando l'utente ha smesso di modificare e si sta spostando nel buffer. Questo è un buon momento per spedire il contenuto del buffer per l'analisi. Il client vim lo fa quando l'utente esce dalla modalità di inserimento e sto cercando di emulare quel comportamento.
self-insert-command
di annullare e riprogrammare un timer invece di utilizzare un timer di inattività. In questo modo, anche se l'utente fa qualcosa, il timer non viene ripristinato a meno che il "qualcosa" non sia l'inserimento di testo.
after-change-functions
è un meccanismo generale per reagire alle modifiche del testo.
post-command-hook
. Ciò si innescherà su tutto, quindi potrebbe essere necessario fare un po 'di filtraggio su ciò che lo ha attivato prima di intraprendere qualsiasi azione tu voglia.
buffer-chars-modified-tick
funzione può essere utile.