Puede alimentar eventos arbitrarios (pulsaciones de teclas, clics del mouse, etc.) al bucle de comandos al colocarlos en unread-command-events
. Por ejemplo, lo siguiente hará que el ciclo del comando ejecute un corte la próxima vez que se ejecute:
(setq unread-command-events (listify-key-sequence "\C-g"))
Tenga en cuenta que esto solo alimenta eventos al bucle de comando, por lo que no hará nada interesante si está bucleando su propio código.
Un enfoque diferente, del que parece estar al tanto, es encontrar la función a la que está vinculada una tecla determinada y ejecutarla usted mismo:
(funcall (global-key-binding "\C-g"))
Esto ejecutará el comando de inmediato. Sin embargo, tenga en cuenta que algunos comandos tienen un comportamiento diferente dependiendo de si se los llama de forma interactiva, como los argumentos predeterminados. Querrás compensar eso usando call-interactively
:
(call-interactively (global-key-binding "\C-g"))
key-bindings
es la etiqueta incorrecta si no está tratando de alias un enlace de clave. Además, tal vez debería cambiar su ejemplo por otro para que no se confunda.key-events
etiqueta ¿Debo hacer uno?key-translation-map
facilitar este último, por lo que si eso es todo lo que desea, sugeriría usarlo en lugar de hacer algo más manual.