Wyszukaj wszystkie wersje pliku w drzewie cofania

11

Czy istnieje łatwiejszy sposób na znalezienie konkretnej zmiany w drzewie cofnięć Vima niż przeglądanie pojedynczych losowych starych wersji pliku pojedynczo (za pomocą waniliowych poleceń VIM, Gundo lub innej wtyczki)?

Idealnie chciałbym wprowadzić wzorzec wyszukiwania, który będzie dopasowany do wszystkich różnic wyświetlanych w okienku podglądu przez Gundo, a następnie niech Gundo pokaże mi, które wersje mają różnice pasujące do tego wyszukiwania.

To pytanie zadaje coś prawie identyczne, ale Pytający przyjął odpowiedź, że po prostu zaleca Gundo, który, choć jest to wspaniałe, nie wydaje się robić to, co pytam.

Poddałem to jako nową funkcję dla Gundo , ale nie otrzymałem żadnej odpowiedzi.

EDYCJA: Jest otwarta prośba o tę funkcję dla undotree.

UWAGA: To pytanie zostało „ręcznie migrowane” z administratora .

Kyle Strand
źródło
Uwaga: plugin-gundobyłby dobrym tagiem dla tego pytania, ale niestety ten tag jeszcze nie istnieje i nie mam żadnego przedstawiciela.
Kyle Strand,
1
Jest też undotree . Nie wiem, czym dokładnie różni się od gundo, czy obsługuje tę funkcję, ale możesz to sprawdzić.
Martin Tournoij,
2
Guz! Jeśli sprawdzisz problem z Gundo, ktoś opublikował widelec z funkcją wyszukiwania.
joeytwiddle
@joeytwiddle Widziałem to! Jednak jeszcze tego nie sprawdziłem.
Kyle Strand,

Odpowiedzi:

6

W niektórych przypadkach może to wystarczyć:

:changes

Niestety nie wyświetla pełnego podsumowania historii edycji. Wygląda na to, że pokazuje tylko linię tekstu, na której wylądowałeś po każdej zmianie.

Jest to wystarczająco dobre, aby wyświetlić wszystkie jednowierszowe wstawki lub zmiany, ale tylko ostatni wiersz wstawki wieloliniowej i bez usuniętego tekstu.

Można go przeszukiwać tylko wizualnie, a nie automatycznie, chociaż możesz złapać to polecenie, a następnie:

:PipeCmd changes | less

które pozwoliłyby na wyszukiwanie za pomocą /. Lub po prostu potokuj grepzamiast less.

Alternatywnym sposobem przeszukania tej listy byłoby zainstalowanie wtyczki Unite, a następnie:

:Unite change
joeytwiddle
źródło
1
Hm Ponieważ wyszukiwanie i zamiana może spowodować, że zastępowane słowa będą całkowicie niewidoczne changes, nie jest to szczególnie przydatne. To, co naprawdę chciałbym, to móc to zrobić :%s/foo/bar/g, a następnie wyszukać foo, aby (zrekonstruować i) pokazać mi ostatnią wersję pliku, w której foobył obecny.
Kyle Strand
2

Istnieje teraz widelec gundo o nazwie „mundo” z tą funkcją.

Będąc w oknie cofania drzewa, /przeszukuje historię zamiast tekstu wyświetlanego w samym oknie.

(Uwaga: wydaje się, że ta funkcja została zaadaptowana z innego rozwidlenia gundo . Nie jestem pewien, gdzie należy się uznanie za wdrożenie i nie próbowałem obu rozwidleń, aby zobaczyć, który z nich działa lepiej).

Kyle Strand
źródło