Diberikan string di elisp, saya ingin mensimulasikan emacs menerima penekanan tombol apa pun yang diperlukan untuk membuat kembali string itu. Jadi mengingat string "Hello" emacs akan bertindak persis sama seperti jika saya telah menekan Shift + H, e, l, l, o. Perhatikan bahwa ini tidak selalu sama dengan memasukkan teks ke dalam buffer - beberapa mode seperti mode-cari mendengarkan acara langsung menekan tombol.
Alasan ini diperlukan adalah karena ada banyak mode dan ekstensi yang membuat asumsi bahwa semua input berasal dari keyboard atau membuat asumsi bahwa setiap penyangga / perubahan jendela / bingkai akan dikaitkan dengan peristiwa input keyboard, dan banyak waktu mereka memeriksa data yang terkait dengan peristiwa itu. Untuk mode pengenalan ucapan yang saya kerjakan agar bekerja mulus dengan tubuh kode yang ada, itu tidak bisa hanya memanggil langsung ke elisp untuk melakukan tindakan, alih-alih itu perlu memberitahu elisp untuk menekan tombol untuk menyebabkan tindakan itu terjadi.
Saya telah menemukan peristiwa-perintah-belum dibaca, tetapi saya tidak mengetahui adanya kode yang akan menerjemahkan string ke urutan kunci yang diperlukan. Apakah sesuatu seperti itu sudah ada?
(let ((string "C-Beams")) (execute-kbd-macro (kbd (mapconcat #'char-to-string string " "))))
akan bekerja. Mungkin ada cara yang lebih baik ...