Cet article dit que "Emacs a recommencé parce que vous pouvez inverser la direction pendant l'annulation, annulant ainsi l'annulation".
Qu'est-ce que ça veut dire? Comment un utilisateur peut-il «refaire» avec Emacs?
Cet article dit que "Emacs a recommencé parce que vous pouvez inverser la direction pendant l'annulation, annulant ainsi l'annulation".
Qu'est-ce que ça veut dire? Comment un utilisateur peut-il «refaire» avec Emacs?
Réponses:
Version courte: en annulant l'annulation. Si vous annulez, puis effectuez une commande de non-édition telle que C-f, l'annulation suivante annulera l'annulation, ce qui entraînera une répétition.
Version plus longue:
Vous pouvez penser à annuler comme opérant sur une pile d'opérations. Si vous exécutez une commande (même une commande de navigation telle que C-f) après une séquence d'opérations d'annulation, toutes les annulations sont poussées vers la pile d'opérations. Ainsi, la prochaine annulation annule la dernière commande. Supposons que vous ayez une séquence d'opérations qui ressemble à ceci:
Maintenant, vous annulez. Il annule la dernière action, ce qui donne la liste suivante:
Si vous faites autre chose que l'annulation à ce stade - disons C-f, la pile d'opérations ressemble à ceci:
Maintenant, lorsque vous annulez, la première chose qui est annulée est l'annulation. Résultat dans votre pile d'origine (et l'état du document):
Si vous effectuez une commande de modification pour interrompre la séquence d'annulation, cette commande est ajoutée après l'annulation et est donc la première chose à annuler ensuite. Supposons que vous ayez reculé sur "bar" au lieu de frapper C-f. Vous auriez alors eu
Cet ajout / rajout se produit à l'infini. Il faut un peu de temps pour s'y habituer, mais cela donne vraiment à Emacs un mécanisme d'annulation / rétablissement très flexible et puissant.
la source
Défaire: C-_
Pour refaire après une annulation: C-g C-_
Tapez plusieurs fois C-_ pour refaire ce qui a été annulé par C-_ Pour refaire une commande emacs plusieurs fois, exécutez votre commande puis tapez C-xzpuis tapez plusieurs fois sur la ztouche pour répéter la commande (intéressant lorsque vous voulez exécuter plusieurs fois une macro)
la source
C-u
, par exempleC-u 8 *
(insère huit * où se trouve le curseur). Vous pouvez donc utiliserC-u x C-_
pour annuler x étapes.C-x e
), vous pouvez simplement appuyere
aussi souvent que nécessaire pour l'exécuter à nouveau.C-/
etC-x u
sont des raccourcis clavier alternatifs, équivalents àC-_
. Je préfèreC-/
car c'est plus facile à toucher.C-g C-_
"refaire après une annulation", cela ne s'applique que la première fois que vous appuyez sur la combinaison. Après cela, répétez votre touche d'annulation sansC-g
. Donc, pour refaire trois fois juste après l'annulation, tapezC-g C-_ C-_ C-_
. Si vous tapezC-g C-_ C-g C-_ C-g C-_
, vous allez simplement tourner en rond, défaire votre rétablissement de votre défaite ...C-/
C-/
C-/
C-g
C-/
C-g
C-/
C-/
. Notez que celaC-g
n'est pas répété.C-g
C-/
C-g
C-/
C-/
Si vous avez appuyé sur une touche (que ce soit en tapant des caractères ou en déplaçant simplement le curseur) depuis votre dernière commande d'annulation, il n'est pas nécessaire de taper
C-g
avant votre prochaine annulation / restauration.C-g
est juste une touche sûre à frapper qui ne fait rien par elle-même, mais compte comme une touche non annulée pour signaler la fin de votre séquence d'annulation. Appuyez sur une autre commande telle que celleC-f
qui fonctionnerait aussi; c'est juste que cela déplacerait le curseur de l'endroit où vous l'aviez.Si vous frappez
C-g
ou une autre commande alors que vous ne le vouliez pas, et que vous annulez maintenant dans la mauvaise direction, appuyez simplement surC-g
pour inverser à nouveau votre direction. Vous devrez annuler tout au long de vos annulations et annulations accidentelles avant d'arriver aux annulations que vous voulez, mais si vous continuez à frapperC-/
, vous finirez par atteindre l'état que vous voulez. En fait, chaque état dans lequel le tampon a jamais été accessible est accessible si vous appuyezC-g
une fois, puis appuyezC-/
suffisamment de fois.Raccourcis alternatifs pour
undo
, autres queC-/
sontC-_
,C-x u
etM-x
undo
.Voir Annuler dans le manuel Emacs pour plus de détails sur le système d'annulation d'Emacs.
la source
Pour ceux qui souhaitent avoir la fonctionnalité d'annulation / rétablissement la plus courante, quelqu'un a écrit
undo-tree.el
. Il offre l'aspect et la convivialité de l'annulation non Emacs, mais donne accès à l'ensemble de l'arborescence de l'histoire de l'annulation.J'aime le système d'annulation intégré d'Emacs, mais je trouve ce package très intuitif.
Voici le commentaire du fichier lui-même:
la source
Méfiez-vous de la bizarrerie d'un arbre à restaurer !
De nombreux «kits de démarrage» populaires (prélude, purcell, spacemacs) sont livrés avec un arbre d'annulation. La plupart (tous?) L'activent même automatiquement. Comme mentionné, l'annulation de l'arbre est un moyen pratique de visualiser et de parcourir l'arbre d'annulation / de rétablissement. Prelude lui donne même un accord de touche (
uu
), et aussiC-x u
.Le problème est: undo-arbre semble épave par défaut Emacs et bien connu pour la liaison redo :
C-g C-/
.Au lieu de cela, vous pouvez utiliser ces touches symétriques pour annuler / rétablir :
Celles-ci sont utiles car vous voulez parfois refaire rapidement sans ouvrir le visualiseur.
la source
Je trouve
redo.el
extrêmement pratique pour faire des annulations / rétablissements "normaux", et je les lie généralement à CSz et annuler à Cz, comme ceci:Téléchargez simplement le fichier, placez-le dans votre lisp-path et collez ce qui précède dans votre
.emacs
.la source
Emacs 28 ajoute une commande de rétablissement (appelée
undo-redo
).Si vous souhaitez effectuer des annulations / rétablissements plus typiques, les commandes suivantes peuvent être utilisées.
la source
Si vous souhaitez refaire la dernière opération, procédez comme suit.
ESC
C + /
)la source
Par défaut, refaire dans Emacs nécessite d'appuyer sur Cg, puis d'annuler.
Cependant, il est possible d'utiliser l'annulation intégrée d'Emacs pour implémenter une commande de rétablissement également.
Le package undo-fu , utilise la fonctionnalité d'annulation intégrée d'Emacs pour exposer à la fois l'annulation et la restauration.
la source