8.5. Répéter les commandes du mini-tampon

Toute commande utilisant le mini-tampon au moins une fois est enregistrée dans une liste historique spéciale, avec ses arguments ; vous pouvez ainsi réutiliser la commande entière. En particulier, tout usage de M-x y est enregistré, puisque M-x utilise le mini-tampon pour lire un nom de commande.

C-x ESC ESC

Réexécute une commande récente du mini-tampon (repeat-complex-command).

M-x list-command-history

Affiche l'historique complet des commandes, montrant toutes les commandes que C-x ESC ESC peut répéter, les plus récentes d'abord.

C-x ESC ESC est utilisé pour exécuter à nouveau une commande récente utilisant le mini-tampon. Sans argument, il répète la dernière commande. Un argument numérique spécifie quelle commande répéter ; 1 veut dire la dernière, et des nombres supérieurs spécifient des commandes plus anciennes.

C-x ESC ESC fonctionne en transformant la commande précédente en une expression Lisp puis en entrant dans un mini-tampon initialisé avec le texte de cette expression. Si vous tapez juste RET, la commande est répétée comme précédemment. Vous pouvez aussi changer la commande en éditant l'expression Lisp. L'expression que vous soumettez alors est celle qui sera exécutée. La commande répétée est ajoutée en tête de l'historique des commandes, à moins qu'elle ne soit identique à la commande la plus récemment exécutée.

Même si vous ne comprenez pas la syntaxe Lisp, vous comprendrez certainement la commande affichée pour être répétée. Si vous ne changez rien au texte, elle sera répétée exactement comme précédemment.

Une fois dans le mini-tampon pour C-x ESC ESC, vous pouvez utiliser les commandes d'historique du mini-tampon (M-p, M-n, M-r, M-s ; Section 8.4) pour vous déplacer dans la liste historique des commandes enregistrées. Après avoir trouvé la commande précédente désirée, vous pouvez éditer son expression puis la soumettre avec RET comme d'habitude.

La liste des commandes précédentes utilisant le mini-tampon est sauvegardée sous forme de liste Lisp dans la variable command-history. Chaque élément est une expression Lisp qui décrit une commande et ses arguments. Les programmes Lisp peuvent exécuter de nouveau une commande en appelant eval sur l'élément de command-history.