Jak korzystać z drzewa zmian w vimie


14

Czy można pobrać gałąź zmian, którą „porzuciłem”? Na przykład cofam kilka operacji u, a następnie zmieniam tryb wstawiania. Ale potem zdaję sobie sprawę, że nie chcę tej zmiany, wolę wrócić do miejsca, w którym byłem na początku (przed cofnięciem).

Czy zmiany te zostały utracone na zawsze?

Odpowiedzi:


12

Do nawigacji w drzewie cofania najlepiej użyć wtyczki Gundo . Tworzy to nowe podzielone okno ze specjalnymi powiązaniami do przeskakiwania do różnych gałęzi drzewa cofania, a także panel podglądu, który pokazuje dokładnie, co zmieniło się między poszczególnymi węzłami w drzewie.


Innym wyborem będzie UndoTree.
musicmatze

12

W takich prostych przypadkach wystarczy nacisnąć g-.

Zasadniczo przegląda listę zmian chronologicznie (traktując ujako rzeczywistą zmianę), a nie liniowo (jak za pomocą u/ <C-r>).

Na przykład, jeśli wstawiłeś kilka wierszy i naciśniesz g-, dzieje się tak:

demonstracja


jak stworzyłeś animowany gif?
guido

4
@guido Użyłem niestandardowego narzędzia o nazwie mkcast .
Klamka

2

Nie, nie możesz cofać się w drzewie. Najlepszym sposobem jest użycie wtyczki do tego zadania.

Kolejną wtyczką jest Undotree . To jest jak Gundo , ale z pewnymi różnicami:

  1. Czysta implementacja vimscript i żadne biblioteki innych firm (takie jak Python) nie są potrzebne, nie martw się o wydajność, vim nie jest w stanie poradzić sobie z tym. Jedyną zależnością jest narzędzie „diff”, które zawsze dostarczane jest z vimem, a nawet bez „diff” nadal możesz korzystać z większości funkcji tego skryptu.
  2. W czasie rzeczywistym zaktualizowano drzewo cofania. Po wprowadzeniu zmian drzewo cofania zostanie zaktualizowane jednocześnie.
  3. Kilka przydatnych znaków, takich jak aktualny zestaw zmian, następny zestaw zmian powtórzeń, zapisany zestaw zmian itp.
  4. Przełączaj pomiędzy względnym znacznikiem czasu a absolutnym znacznikiem czasu.
  5. W czasie rzeczywistym zaktualizowano okno cofania.
  6. Możliwość wyczyszczenia historii cofania.
  7. Bardziej konfigurowalny.

4
Czy ta odpowiedź nie jest bezpośrednio obalona przez post doorknob ?
Caleb
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.