vimdiff w cygwin nie działa poprawnie

0

Kiedy porównywałam dwa pliki z vimdiff w moim cygwinie,

vimdiff a.c b.c

wszystkie linie zostały złożone (jak poniżej)

all-folded

Potem użyłem zR aby otworzyć wszystkie foldery, ale nie pokazano żadnej różnicy.

no-difference

Inną dziwną rzeczą jest to, że kiedy zaczynam dodawać nową linię (za pomocą PRZYCISKU o), zaczyna ona pokazywać różnicę new-difference

Znalazłem to vimdiff faktycznie łączy się z gvim, nie wiem, czy to jest problem?

$ type diff
diff is /cygdrive/c/Program Files (x86)/Vim/vim72/diff

$ type vimdiff
vimdiff is /usr/bin/vimdiff

$ ll /usr/bin/vimdiff
lrwxrwxrwx 1 dhuang7 Domain Users 25 Jul 27 16:35 /usr/bin/vimdiff -> /etc/alternatives/vimdiff

$ ll /etc/alternatives/vimdiff
lrwxrwxrwx 1 dhuang7 Domain Users 17 Jul 27 16:35 /etc/alternatives/vimdiff -> /usr/bin/gvim.exe

$ ll /usr/bin/gvim.exe
-rwxr-xr-x 1 dhuang7 Domain Users 1801245 Jun 28 12:39 /usr/bin/gvim.exe

Btw nie ma .vimrc kiedy to było uruchomione. Próbowałem dodać set diffopt=filler,context:50 w mój .vimrc ale wciąż to samo.

Wypróbowany :messages po uruchomieniu vimdiff, ale nie zauważono błędu:

"a.c" 7L, 74C
"b.c" 6L, 59C
Deqing
źródło
Gdzieś jest błąd. Różnicowanie tych dwóch plików działa tutaj zgodnie z oczekiwaniami.
romainl
1
Czy pojawiają się jakieś błędy po wpisaniu „: messages” po uruchomieniu vimdiff? Domyślam się, że brakuje ci diff binarny, lub nie ma go w twojej $ PATH.
Heptite
@ Heptite Nie zaobserwowano błędu :messages, Zaktualizowałem moje pytanie o dane wyjściowe.
Deqing
Co to jest wyjście typu „diff”?
Heptite
@ Heptite „type diff” pokazuje / cygdrive / c / Program Files (x86) / Vim / vim72 / diff. Ponownie zaktualizowałem moje pytanie, dziękuję za pytanie.
Deqing

Odpowiedzi:

2

Mam dokładnie ten sam problem. Zauważyłem następujący błąd po wykonaniu: diffupdate

/bin/bash: /usr/share/vim/vim73diff: No such file or directory

Ten plik oczywiście nie istnieje, więc podejrzewam, że @Heptite miał rację mówiąc, że vi nie może znaleźć pliku binarnego. diff.exe był już w moim PATH, więc jestem zdezorientowany tym. Jednak dowiązanie symboliczne wydaje się rozwiązywać problem.

ln -s /usr/bin/diff /usr/share/vim/vim73diff

Brzydkie, ale znów wracam do pracy.

Neil
źródło
:diffupdate zwraca E97: Cannot create diffs w moim vimdiff. Nie wiem dlaczego i jak to naprawić.
Deqing
0

Właśnie miałem ten sam problem i uruchomiłem :diffupdate zwrócony E97: Cannot create diffs

Rozwiązanie: moje /tmp partycja była pełna. The diff polecenie uruchomione wewnętrznie przez vim nie było w stanie zapisać wyniku. Po prostu wyczyściłem to i wszystko znowu działało.

TegtmeierDE
źródło