2009-08-27 10 views
19

Czy jest możliwe, aby VIM podświetlił zmienione linie od czasu ostatniego zapisu? Wiem, że można to zrobić za pomocą kontroli wersji, ale czy można to zrobić bez? Nie chcę używać żadnego systemu kontroli wersji, ponieważ kod, nad którym pracuję, nie ma tego.Vim - podkreśl zmienione linie

Myślę, że UltraEdit ma coś takiego.

+0

Wygląda na to, że próbujesz sprawić, aby vim był systemem kontroli wersji, więc w efekcie próbujesz dodać VCS. Dlaczego nie skorzystać z narzędzia zaprojektowanego do tego zadania? –

+2

Mimo że podałem bardziej bezpośrednią odpowiedź na twoje pytanie, muszę zgodzić się z Williamem Pursellem, że będzie wiele rzeczy do powiedzenia na temat używania VCS, nawet jeśli jest to tylko jeden z repozytoriów przechowywanych lokalnie w folderze roboczym projekt (jak bazar, mercurial lub git). Nie ma serwera do skonfigurowania i zapewnia on nieoceniony mechanizm cofania, wykraczający poza to, co można zrobić z dowolnym edytorem. Tylko moja opinia ... – DrAl

+1

Mam svn do większości moich innych projektów i wiem, jak cenne jest to, ale nie tego konkretnego. I nie chcę konfigurować repozytorium dla niektórych plików. Odpowiedź od AI jest po prostu potrzebna. – Ayman

Odpowiedz

17

Od here:

if !exists(":DiffOrig") 
    command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis 
      \ | wincmd p | diffthis 
endif 

Następnie wystarczy zrobić :DiffOriget voila!

:help :DiffOrig 
+0

Użyj ': diffoff', aby wyłączyć to ponownie. Jest już trochę dyskusji na temat ': DiffOrig' na Stackoverflow, np. [tutaj] (http://stackoverflow.com/questions/6426154/taking-a-quick-look-at-difforig-then-switching-back). – glts

2

jeśli używasz CVS, Git lub Subversion dla plików źródłowych następnie ten skrypt wtyczki będą robić to, co chcesz: VIM svndiff

to prawdopodobnie nie byłoby zbyt trudne, aby zmusić go do pracy z diff w zamian plik tymczasowy (jeśli nie ma już tej opcji).

0

Potrzebujesz pliku tymczasowego do porównania i nie jestem pewien, czy Vim go ma (ma plik .swp, ale nie wiem, jak można go wykorzystać).

W każdym razie (dziwaczna) możliwość może polegać na użyciu standardowego SCMdiff i napisaniu skryptu poleceń, który wykonuje różnicę między bieżącym plikiem a jego wersją .tmp. Powinieneś również zmapować polecenie, które zapisuje plik .tmp dla bieżącej wersji, może wywoływać automatycznie przy każdym zapisie.

6

Od vim wiki

Typ ": zmiany", aby wyświetlić linie gdzie zaszły zmiany.

Użyj "g;" i "g", aby przejść do zmienionych linii

Powiązane problemy