Dada una cadena en elisp, me gustaría simular que emacs reciba las pulsaciones de teclas necesarias para volver a crear esa cadena. Entonces, dada la cadena "Hola", emacs actuaría exactamente igual que si hubiera presionado Shift + H, e, l, l, o. Tenga en cuenta que esto no siempre es lo mismo que insertar texto en el búfer; algunos modos, como el modo isearch, escuchan los eventos de pulsación de teclas directamente.
La razón por la que esto es necesario es porque hay muchos modos y extensiones que suponen que todas las entradas provienen del teclado o suponen que cualquier cambio de búfer / ventana / marco estará asociado con el evento de entrada del teclado, y muchos el momento en que inspeccionan los datos asociados con ese evento. Para el modo de reconocimiento de voz en el que trabajo para funcionar sin problemas con el cuerpo de código existente, no puede llamar directamente a elisp para realizar acciones, sino que debe decirle a elisp que presione las teclas para que esas acciones sucedan.
He encontrado eventos de comandos no leídos, pero no conozco ningún código existente que traduzca las cadenas a las secuencias de teclas necesarias. ¿Ya existe algo así?
(let ((string "C-Beams")) (execute-kbd-macro (kbd (mapconcat #'char-to-string string " "))))
trabajará. Probablemente hay una mejor manera ...