Y a-t-il un (dernier-dernier ordre) dans Emacs?

Fréquemment, j’ai fouillé dans des propositions et des documents à la recherche de quelque chose comme ce qui suit pour renoncer à revenir à la tâche à accomplir:

(repeat-last-command)

faire la dernière commande C ou M que je viens d’exécuter (à rebondir sur une touche fn)

ou parfois le apparenté:

(description-dernière fonction)

quelle frappe j’ai fait par erreur, dont je voudrais append l’effet à mon sac de trucs. describe-key est proche, mais nécessite de savoir ce que j’ai tapé.

Est-ce que je demande simplement trop à mon fidèle acolyte?

    en ce qui concerne ‘ describe-last-function ‘:

    Il y a une variable last-command qui est définie sur un symbole représentant la dernière chose que vous avez faite. Donc, cet extrait – (describe-function last-command) – devrait faire apparaître la documentation de ce qui s’est produit immédiatement.

    Donc, vous pouvez faire une describe-last-function sortingviale de travail comme si

     (defun describe-last-function() (interactive) (describe-function last-command)) 

    Mettez cet elisp dans .emacs ou équivalent, et vous aurez une Mx describe-last-function .

    Si vous avez tapé sur quelques touches ou avez fait quelque chose qui a modifié la dernière commande car la chose qui vous intéresse, la fonction d’ command-history des command-history peut vous intéresser. Vous pouvez obtenir cela par l’ historique des commandes Mx

    La fonctionnalité de répétition est fournie par le repeat.el Emacs Lisp, qui est inclus avec les dissortingbutions Emacs standard. De la documentation de repeat.el :

    Ce paquet définit une commande qui répète la commande précédente, peu importe ce que c’était, y compris ses arguments, quels qu’ils soient. Cette commande est connectée à la clé Cx z. Pour répéter la commande précédente une fois, tapez Cx z. Pour le répéter une seconde fois immédiatement, tapez juste z. En tapant z encore et encore, vous pouvez répéter la commande encore et encore.

    Pour afficher des informations supplémentaires sur la commande repeat, tapez Ch F repeat RET depuis Emacs.

    Répéter la dernière commande

    Cx z

    Une fois que vous avez appuyé dessus, appuyez simplement sur z après cela et il se répète (sans avoir à appuyer de nouveau sur Cx ).

    Vous pouvez répéter les commandes avec Cx z et appuyer sur z pour continuer à répéter.

    Un peu choquant personne a mentionné repeat-complex-command , disponible à partir de la clé de liaison Cx ESC ESC .

    En outre, Mx view-lossage affiche les cent dernières touches (?) Saisies. Donc, vous pourrez voir où se trouve la commande. C’est ce que j’ai utilisé jusqu’à ce que je découvre tout de suite l’ Mx command-history que je pense utiliser avec Ch w maintenant.

    Je ne suis pas vraiment sûr, mais vous cherchez peut-être celui-là?

    La commande Cx z ( repeat ) permet de répéter plusieurs fois une commande Emacs. Cette commande répète la commande Emacs précédente, quelle qu’elle soit. Répéter une commande utilise les mêmes arguments que ceux utilisés auparavant. il ne lit pas les nouveaux arguments à chaque fois.

    Manuel Emacs, 8.11 Répéter une commande

    Peut-être que cela aiderait aussi … De l’aide emacs verbatim:

     Cx M-ESC runs the command repeat-complex-command which is an interactive comstackd Lisp function in `simple.el'. It is bound to , , Cx M-:, Cx M-ESC. (repeat-complex-command ARG) Edit and re-evaluate last complex command, or ARGth from last. A complex command is one which used the minibuffer. The command is placed in the minibuffer as a Lisp form for editing. The result is executed, repeating the command as changed. If the command has been changed or is not the most recent previous command it is added to the front of the command history. You can use the minibuffer history commands Mn and Mp to get different commands to edit and resubmit. 

    Personnellement, j’ai trouvé l’idée de Sebastian utile. Voici une version de travail

     (global-set-key "\Cr" #'(lambda () (interactive) (eval (car command-history))))