Qual é a melhor maneira de detectar pressionamentos de tecla (por exemplo, através de um gancho) que não editam o buffer? Quero dizer coisas como setas para apontar movimento, chamadas para beginning-of-buffer
etc.
A razão para isso é que estou trabalhando em algumas ycmd
ligações para o emacs e gostaria de poder detectar (pelo menos heuristicamente) quando o usuário parou de editar e está se movendo pelo buffer. É um bom momento para enviar o conteúdo do buffer para análise. O cliente vim faz isso quando o usuário sai do modo de inserção e estou tentando emular esse comportamento.
self-insert-command
a cancelar e reagendar um cronômetro em vez de usar um cronômetro inativo. Dessa forma, mesmo que o usuário faça algo, o cronômetro não será redefinido, a menos que "algo" seja inserção de texto.
after-change-functions
é um mecanismo geral para reagir a alterações de texto.
post-command-hook
. Isso será acionado em tudo, portanto, você pode precisar filtrar o que o acionou antes de executar qualquer ação que desejar.
buffer-chars-modified-tick
função pode ser útil.