De tempos em tempos, observo um comportamento inesperado ao editar texto. Meu primeiro recurso é geralmente usar C-h kpara descobrir quais funções estão sendo chamadas por uma determinada sequência de teclas. No entanto, às vezes a documentação está em desacordo com o comportamento observado. Nesses casos, geralmente presumo que algum outro pacote tenha se conectado a essa função ou sequência de teclas e está modificando seu comportamento.
Como posso descobrir quais funções estão conectadas à minha sequência de teclas?
Um exemplo que encontrei recentemente foi o fato de pressionar a "tecla e as aspas foram inseridas no início e no final da região ativa. Eu suspeitava que esse não era o comportamento padrão do Emacs, então eu C-h k "descobri qual função estava realmente sendo chamada.
A describe-keydocumentação me disse que a função self-insert-commandestava sendo chamada, que é uma função interna. Para resumir uma longa história, após algumas tentativas e erros, pude determinar que o comportamento foi causado por electric-pair-mode. No futuro, existe uma maneira mais rápida de chegar a essa conclusão do que desativar pacotes suspeitos um de cada vez até encontrar o culpado?
electric-pair-modefunciona conectando post-self-insert-hooke não alterando a combinação de teclas.
C-h kinforma exatamente o que acontece com o pressionamento de tecla. Se você olhar para a documentação self-insert-command, ela diz claramente que post-self-insert-hooké executada após a conclusão do comando.
after-change-functionscomo Jordon menciona em sua resposta? A documentação para uma função provavelmente não mencionará especificamente esse gancho, sim?
C-h k+ os ganchos padrão == o comportamento completo (mais ou menos). É claro que às vezes isso deixa muitas possibilidades, mas ainda é muito mais transparente do que qualquer outro sistema de software complexo que eu conheça.


electric-pair-modefoi ativado apenas em alguns modos principais? Você ainda vêself-insert-commandpara"quando você fazC-h kenquantoelectric-pair-modeestá ativo?