Dada uma string no elisp, eu gostaria de simular o emacs recebendo as teclas necessárias para recriar essa string. Portanto, considerando a string "Hello", o emacs agiria exatamente da mesma forma como se eu tivesse pressionado Shift + H, e, l, l, o. Observe que isso nem sempre é o mesmo que inserir texto no buffer - alguns modos como o modo isearch escutam diretamente os eventos de pressionamento de tecla.
O motivo disso é necessário, porque existem muitos modos e extensões que pressupõem que todas as entradas são provenientes do teclado ou que qualquer alteração no buffer / janela / quadro será associada ao evento de entrada do teclado, e muitos o horário em que eles inspecionam os dados associados a esse evento. Para o modo de reconhecimento de fala no qual trabalho para trabalhar perfeitamente com o corpo de código existente, ele não pode simplesmente chamar diretamente o elisp para executar ações; em vez disso, ele precisa dizer ao elisp para pressionar as teclas para que essas ações aconteçam.
Encontrei eventos de comando não lidos, mas não conheço nenhum código existente que traduza seqüências de caracteres para as seqüências de teclas necessárias. Algo assim já existe?
(let ((string "C-Beams")) (execute-kbd-macro (kbd (mapconcat #'char-to-string string " "))))
vai funcionar. Provavelmente há uma maneira melhor ...