Suponha que eu tenha uma sessão do Emacs em execução e que me afaste do meu computador por, digamos, 20 minutos. Ao retornar à minha sessão do Emacs, em algum momento pressionarei alguma tecla enquanto a janela do Emacs estiver em foco. Este seria um exemplo do tipo de evento que estou chamando de first-keypress-in-a-while
1 .
Estou procurando uma maneira de o Emacs executar automaticamente algum código sempre que esse evento acontecer. Estou procurando algo parecido com um first-keypress-in-a-while-hook
.
Olhando através dos ganchos padrão do Emacs, não consigo identificar imediatamente um bom candidato, mas talvez exista um não óbvio que possa fazer esse trabalho.
Como alternativa, existe alguma outra maneira de simular / aproximar a funcionalidade de um gancho?
1 Obviamente, in-a-while
refere-se a algum parâmetro configurável pelo usuário que corresponde a um intervalo de tempo mínimo, digamos 15 minutos. O evento em que estou interessado é o primeiro pressionamento de tecla após um período de inatividade maior que esse intervalo. Por "inatividade", quero dizer o estado em que o Emacs não detecta nenhuma interação do usuário: sem pressionar as teclas, sem clicar no mouse etc.
fonte
pre-command-hook
após a execução? Eu acho que isso adicionará my-run-fkpiawh a todos os comandos chamados após o período ocioso, em vez de apenas o primeiro?Eu acho que uma solução do seu problema é definir um sinalizador com um timer inativo, https://www.gnu.org/software/emacs/manual/html_node/elisp/Idle-Timers.html
e marcando / desmarcando-o com
post-self-insert-hook
um gancho similar de sua escolha.O seguinte funciona para mim:
fonte