¿Cuál es la mejor manera de detectar pulsaciones de teclas (por ejemplo, a través de un gancho) que no editan el búfer? Me refiero a cosas como las teclas de flecha para el movimiento de puntos, llamadas a beginning-of-buffer
, etc.
La razón de esto es que estoy trabajando en algunos ycmd
enlaces para emacs, y me gustaría poder detectar (al menos heurísticamente) cuando el usuario ha dejado de editar y se está moviendo alrededor del búfer. Este es un buen momento para enviar el contenido del búfer a analizar. El cliente vim hace esto cuando el usuario sale del modo de inserción, y estoy tratando de emular ese comportamiento.
self-insert-command
cancelar y reprogramar un temporizador en lugar de usar un temporizador inactivo. De esta manera, incluso si el usuario hace algo, el temporizador no se reinicia a menos que el "algo" sea la inserción de texto.
after-change-functions
es un mecanismo general para reaccionar a los cambios de texto.
post-command-hook
. Eso se activará en todo, por lo que es posible que deba filtrar lo que lo activó antes de tomar la acción que desee.
buffer-chars-modified-tick
función puede ser útil.