Per aggiungere alla risposta di dnetserr e al commento di Peter Rincker, Vim mantiene un elenco di modifiche e ha alcuni comandi associati a questo.
:changes
elencherà le modifiche, mostrandoti dove erano e cosa erano. Per esempio:
change line col text
2 8 17 #include <stdio.h>
1 3 0 #include "stm32f407.auto.h"
>
La linea con gli >
spettacoli dove ti trovi nello stack di modifica, un po 'come la jump list ( :jumps
) o tag stack ( :tags
). Inoltre, come la jump list e lo stack di tag, puoi attraversare questo elenco.
In modalità normale, i movimenti devono g;
passare a una posizione di modifica precedente e g,
passare a quella successiva. Puoi anche digitare il numero della modifica prima g;
o g,
per passare a quella modifica dall'elenco. Sopra, 2g;
mi porterebbe al punto in cui si è verificato il cambiamento che coinvolge stdio.h.
Quando si è nel mezzo della pila, i numeri dagli :changes
aggiornamenti mostrano le distanze relative. Per esempio:
change line col text
1 8 17 #include <stdio.h>
> 0 3 0 #include "stm32f407.auto.h"
1 10 4 other
Questo dimostra che posso tornare indietro di uno ( 1g;
o solo g;
) o in avanti di uno ( 1g,
o solo g,
).
Questo è fantastico se il cambiamento che vuoi ottenere si è effettivamente verificato alcune modifiche fa
Lo svantaggio di questo è che non sembra agire come un movimento normale. Ad esempio, non si può fare dg;
per eliminare dal cursore nella posizione cambiamento precedente, mentre d'.
e d'^
fare il lavoro come movimenti.
g;
eg,
per spostarsi tra le posizioni nell'elenco delle modifiche. Vedi:h g;
e:h g,