¿Cómo averiguar qué comando ejecuté accidentalmente con un atajo de teclado?

11

¿Existe un lugar donde emacs almacena los comandos que el usuario ha ejecutado recientemente, en particular a través de atajos de teclado, y si no, sería posible decirle que los almacene en algún lugar? A veces escribo el método abreviado de teclado incorrecto por accidente y no sé qué es lo que hice. Lo deshago, pero tiendo a repetir estos atajos accidentales de vez en cuando, y no tengo idea de cómo averiguar qué presioné exactamente o qué comando ejecuté.

Sé cómo determinar qué comando está vinculado a una tecla. Mi problema es que no sé ni el comando ni las teclas que presioné, solo el efecto que tuvieron y el hecho de que lo hice recientemente.

Zorgoth
fuente
Aunque algunas funciones se configuran expresamente last-commanden algo especial, en su mayor parte solo puede verificar el valor de esa variable para ver el último comando más reciente.
ley

Respuestas:

14

Cuando alguna secuencia de teclas desencadena un comando inesperado, use view-lossage(vinculado C-h lde forma predeterminada) para ver qué pulsaciones de teclas ha recibido Emacs recientemente. Esto es más útil ya que Emacs 25 ya que ahora también muestra los comandos invocados por cada secuencia de teclas. En versiones anteriores, solo verá las pulsaciones de teclas sin formato.

glucas
fuente
6

Como @glucas ha mencionado, view-lossageayuda. Desafortunadamente, muestra relativamente pocos eventos y los usuarios no tienen control sobre el número.

Como C-h k C-h lte dice, puedes grabar todos los caracteres del teclado usando open-dribble-file:

view-lossagees una función Lisp compilada interactiva en help.el.

Se ve obligada a C-h l, <f1> l, <help> l.

(view-lossage)

Muestra las últimas pulsaciones de teclas de entrada y se ejecutan los comandos.

Para grabar toda su entrada, use open-dribble-file.


open-dribble-filees una función integrada interactiva en C source code.

(ARCHIVO open-dribble-file)

Comience a escribir todos los caracteres del teclado en un archivo dribble llamado FILE.

Si FILEes así nil, cierre cualquier archivo de dribble abierto. El archivo se cerrará cuando salga Emacs.

¡Tenga en cuenta que esto registra TODOS los caracteres que escribe! Esto puede incluir información confidencial como contraseñas.

Dibujó
fuente