Bei einer Zeichenfolge in elisp möchte ich Emacs simulieren, die alle Tastendrücke erhalten, die zum erneuten Erstellen dieser Zeichenfolge erforderlich sind. Angesichts der Zeichenfolge "Hallo" würden sich Emacs genauso verhalten, als hätte ich Umschalt + H, e, l, l, o gedrückt. Beachten Sie, dass dies nicht immer mit dem Einfügen von Text in den Puffer identisch ist. Einige Modi wie der Suchmodus hören Tastendruckereignisse direkt ab.
Der Grund, warum dies notwendig ist, liegt darin, dass es viele Modi und Erweiterungen gibt, die davon ausgehen, dass alle Eingaben von der Tastatur stammen, oder davon ausgehen, dass jede Änderung von Puffer / Fenster / Rahmen mit dem Tastatureingabeereignis verbunden ist, und viele die Zeit, zu der sie die mit diesem Ereignis verbundenen Daten überprüfen. Für den Spracherkennungsmodus, an dem ich arbeite, um nahtlos mit dem vorhandenen Code zu arbeiten, kann er nicht einfach direkt in elisp aufrufen, um Aktionen auszuführen, sondern muss elisp anweisen, die Tasten zu drücken, damit diese Aktionen ausgeführt werden.
Ich habe ungelesene Befehlsereignisse gefunden, kenne jedoch keinen vorhandenen Code, der Zeichenfolgen in die erforderlichen Schlüsselsequenzen übersetzt. Gibt es so etwas schon?
(let ((string "C-Beams")) (execute-kbd-macro (kbd (mapconcat #'char-to-string string " "))))
wird funktionieren. Wahrscheinlich gibt es einen besseren Weg ...