Data una stringa in elisp, mi piacerebbe simulare emacs ricevendo qualsiasi tasto premuto per ricreare quella stringa. Quindi, dato che la stringa "Hello" emacs avrebbe funzionato esattamente come se avessi premuto Shift + H, e, l, l, o. Nota che questo non è sempre la stessa cosa dell'inserimento di testo nel buffer: alcune modalità come la modalità isearch ascoltano direttamente gli eventi di pressione dei tasti.
La ragione per cui ciò è necessario è perché ci sono molte modalità ed estensioni che danno per scontato che tutti gli input provengano dalla tastiera o suppongono che qualsiasi modifica di buffer / finestra / frame sarà associata all'evento di input da tastiera, e molti il tempo in cui ispezionano i dati associati a quell'evento. Affinché la modalità di riconoscimento vocale su cui lavoro funzioni perfettamente con il corpo di codice esistente, non può semplicemente chiamare direttamente in elisp per eseguire azioni, invece deve dire a elisp di premere i tasti per far sì che tali azioni si verifichino.
Ho trovato unread-command-events, ma non sono a conoscenza di alcun codice esistente che tradurrà le stringhe nelle sequenze di tasti necessarie. Esiste già qualcosa del genere?
(let ((string "C-Beams")) (execute-kbd-macro (kbd (mapconcat #'char-to-string string " "))))
funzionerà. Probabilmente c'è un modo migliore ...