Come si usa l'albero delle modifiche in vim


14

È possibile recuperare il ramo modifiche che ho "abbandonato"? Ad esempio, sto annullando diverse operazioni utilizzando u, quindi sto apportando una modifica nella modalità di inserimento. Ma poi mi rendo conto che non voglio avere questo cambiamento, preferirei tornare a dove ero all'inizio (prima di annullare).

Questi cambiamenti sono persi per sempre?

Risposte:


12

Per navigare nella struttura degli annullamenti, la soluzione migliore è utilizzare il plug-in Gundo . Questo crea una nuova finestra divisa con collegamenti speciali per saltare a diversi rami all'interno dell'albero di annullamento, nonché un riquadro di anteprima che mostra esattamente cosa è cambiato tra ciascun nodo nella struttura.


Un'altra scelta sarebbe UndoTree.
musicmatze,

12

Per casi semplici come questo, puoi semplicemente premere g-.

In sostanza, ciò che fa è attraversare cronologicamente l'elenco dei cambiamenti (trattando un ucome un cambiamento reale), piuttosto che linearmente (come con u/ <C-r>).

Ad esempio, se hai inserito alcune righe e premi g-, ciò accade:

dimostrazione


come hai creato la gif animata?
guido,

4
@guido Ho usato uno strumento personalizzato chiamato mkcast .
Doorknob,

2

No, non puoi andare avanti e indietro nell'albero. Il modo migliore è usare un plugin per questo lavoro.

Un altro plugin è Undotree . È come Gundo , ma con alcune differenze:

  1. È necessaria una pura implementazione di vimscript e non sono necessarie librerie di terze parti (come python), non preoccuparti delle prestazioni, non è un grosso problema per Vim gestirlo. L'unica dipendenza è lo strumento 'diff' che viene sempre fornito con vim e anche senza 'diff' è ancora possibile utilizzare la maggior parte delle funzionalità di questo script.
  2. Albero di annullamento aggiornato in tempo reale. Una volta apportate le modifiche, l'albero di annullamento verrà aggiornato contemporaneamente.
  3. Numerosi segni utili, come il changeset corrente, il prossimo changeset redo, il changeset salvato, ecc.
  4. Alterna tra data / ora relativa e data / ora assoluta.
  5. Finestra di annullamento aggiornata in tempo reale.
  6. Possibilità di cancellare la cronologia degli annullamenti.
  7. Più personalizzabile.

4
Questa risposta non è direttamente smentita dal post di doorknob ?
Caleb,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.