Próbuję mieć podświetlone cofanie w Vimie, jak domyślna konfiguracja spacemacs. Czasami, gdy chcę szybkiego cofnięcia, nie mogę zrozumieć, co się zmieniło, ponieważ jest to natychmiastowe. Więc próbuję mieć coś takiego po cofnięciu prasy:
Czy ktoś ma pomysł, jak to zrobić w Vimie?
(Mam już wtyczkę Gundo, chcę tylko sprawić, by domyślne cofanie było bardziej płynne)
Edycja : Wtyczka undotree działa ( Gundo nie wyróżnia zmian), wystarczy użyć UndotreeToggle
polecenia, a wszystkie przyszłe zmiany w pliku zostaną podświetlone.
matchadd()
, ale nieco trudniejsze jest ustalenie, które części pliku uległy zmianie.Odpowiedzi:
Nowe rozwiązanie
Możesz zobaczyć swoje ostatnie zmiany za pomocą
:changes
polecenia. Możesz więc wyszukać ostatnią zmianę linii za pomocą wyrażenia regularnego, a następnie zastosować linięmatchadd()
zgodnie z sugestią @joeytwiddle.Oto kod:
Uwaga :
Ta funkcja dodaje tylko nowe wyróżnienie bez usuwania starego, więc najpierw musisz usunąć stary.Dzięki tejclearmatches
funkcji możesz usunąć dopasowania przed dodaniem nowego. Ostrożnie, usunie WSZYSTKIE dopasowania. Jeśli chcesz uzyskać większą szczegółowość, możesz zapisać dopasowanie i usunąć je ręcznie:na przykład
Bibliografia :
Stare rozwiązanie
Oto możliwe rozwiązanie, zainspirowane głównie bieżącym buforem Diff i oryginalnym plikiem :
Chodzi o to, aby różnicować plik z plikiem w systemie, aby cofnąć ostatnią zmianę, napisać ją, powtórzyć zmianę lasu i wykonać różnicę.
Myślę, że to powinno wystarczyć do czasowych wizualizacji różnic czasowych.
źródło
Sprawdź wtyczkę zmian i upewnij się, że ustawiłeś zmienną
g:changes_linehi_diff
na 1źródło
Dla kogoś, kto próbuje tego samego ze mnie, to jest najbliższe, do którego dotarłem dzięki odpowiedziom.
źródło