Pour ajouter à la réponse de dnetserr et au commentaire de Peter Rincker, Vim tient à jour une liste de modifications et dispose de certaines commandes associées.
:changes
listera les changements, en vous indiquant où ils étaient et ce qu’ils étaient. Par exemple:
change line col text
2 8 17 #include <stdio.h>
1 3 0 #include "stm32f407.auto.h"
>
La ligne avec les >
spectacles où vous vous trouvez dans la pile de modifications, un peu comme la liste de sauts ( :jumps
) ou la pile de balises ( :tags
). De même que la liste de sauts et la pile de balises, vous pouvez parcourir cette liste.
En mode normal, les mouvements doivent g;
aller à un emplacement de changement précédent et g,
au suivant. Vous pouvez également saisir le numéro de la modification avant g;
ou g,
pour accéder à cette modification dans la liste. Ci-dessus, 2g;
m'emmènerait à l'endroit où le changement impliquant stdio.h s'est produit.
Lorsque vous êtes au milieu de la pile, les numéros des :changes
mises à jour indiquent les distances relatives. Par exemple:
change line col text
1 8 17 #include <stdio.h>
> 0 3 0 #include "stm32f407.auto.h"
1 10 4 other
Cela montre que je peux revenir en arrière ( 1g;
ou tout simplement g;
) ou avancer ( 1g,
ou tout simplement g,
).
C’est génial si le changement que vous voulez obtenir s’est produit il ya quelques modifications.
L'inconvénient est qu'il ne semble pas agir comme un mouvement normal. Par exemple, vous ne pouvez pas dg;
supprimer du curseur le point de changement précédent, alors d'.
que d'^
vous travaillez en tant que mouvements.
g;
etg,
pour passer d’une position à l’autre dans la liste des modifications. Voir:h g;
et:h g,