Quelle est la meilleure façon de détecter les frappes (par exemple via un crochet) qui ne modifient pas le tampon? Je veux dire des choses comme les touches fléchées pour le mouvement de point, les appels à beginning-of-buffer
, etc.
La raison en est que je travaille sur certaines ycmd
liaisons pour emacs, et j'aimerais pouvoir détecter (au moins heuristiquement) lorsque l'utilisateur a arrêté de modifier et se déplace dans le tampon. C'est le bon moment pour expédier le contenu du tampon pour l'analyse. Le client vim fait cela lorsque l'utilisateur quitte le mode d'insertion, et j'essaie d'émuler ce comportement.
self-insert-command
d'annuler et de replanifier un temporisateur au lieu d'utiliser un temporisateur inactif. De cette façon, même si l'utilisateur fait quelque chose, le minuteur n'est pas réinitialisé sauf si le "quelque chose" est une insertion de texte.
after-change-functions
est un mécanisme général pour réagir aux changements de texte.
post-command-hook
. Cela se déclenchera sur tout, vous devrez donc peut-être filtrer ce qui l'a déclenché avant de prendre l'action que vous souhaitez.
buffer-chars-modified-tick
fonction peut être utile.