Comment savoir quelle commande je viens d'exécuter accidentellement avec un raccourci clavier?

11

Existe-t-il un endroit où emacs stocke les commandes que l'utilisateur a récemment exécutées, en particulier via des raccourcis clavier, et sinon, serait-il possible de lui dire de les stocker quelque part? Je tape parfois le mauvais raccourci clavier par accident et je ne sais pas ce que j'ai fait. Je l'annule, mais j'ai tendance à répéter ces raccourcis accidentels de temps en temps, et je n'ai aucune idée de comment savoir exactement ce que j'ai appuyé ou quelle commande j'ai exécutée.

Je sais comment déterminer quelle commande est liée à une clé. Mon problème est que je ne connais ni la commande ni les touches sur lesquelles j'ai appuyé, seulement leur effet et le fait que je l'ai fait récemment.

Zorgoth
la source
Bien que certaines fonctions soient expressément définies last-commandsur quelque chose de spécial, pour la plupart, vous pouvez simplement vérifier la valeur de cette variable pour voir la dernière commande la plus récente.
lawlist

Réponses:

14

Lorsqu'une séquence de touches déclenche une commande inattendue, utilisez view-lossage(lié à C-h lpar défaut) pour voir quelles touches Emacs a récemment reçues. Ceci est très utile depuis Emacs 25 car il affiche désormais également les commandes invoquées par chaque séquence de touches. Dans les versions antérieures, vous ne verrez que les frappes brutes.

glucas
la source
6

Comme l'a mentionné @glucas, ça view-lossageaide. Malheureusement, il affiche relativement peu d'événements et les utilisateurs n'ont aucun contrôle sur le nombre.

Comme C-h k C-h lvous l'indique, vous pouvez enregistrer tous les caractères du clavier en utilisant open-dribble-file:

view-lossageest une fonction Lisp interactive compilée en help.el.

Il est lié à C-h l, <f1> l, <help> l.

(view-lossage)

Affiche les dernières frappes d'entrée et les commandes s'exécutent.

Pour enregistrer toutes vos entrées, utilisez open-dribble-file.


open-dribble-fileest une fonction intégrée interactive dans C source code.

(FICHIER à fichiers ouverts)

Commencez à écrire tous les caractères du clavier dans un fichier dribble appelé FILE.

Si FILEc'est le cas nil, fermez tout fichier dribble ouvert. Le fichier sera fermé à la sortie d'Emacs.

Sachez que cela enregistre TOUS les caractères que vous tapez! Cela peut inclure des informations sensibles telles que les mots de passe.

A dessiné
la source