vimdiff в cygwin не работает должным образом

Когда я сравнивал два файла с vimdiff в моем cygwin,

vimdiff a.c b.c

все линии были сложены (как показано ниже)

все сложенный

Тогда я использовал zR открыть все папки, но никакой разницы не было показано.

нет разницы

Еще одна странная вещь: когда я начинаю добавлять новую строку (КНОПКА o), она начинает показывать разницу:новая разностная

Я обнаружил, что мой vimdiff на самом деле ссылка на gvimне уверен, если это проблема?

$ 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

Кстати нет .vimrc когда это было запущено. И я пытался добавить set diffopt=filler,context:50 в мой .vimrc но все тот же.

Пытался :messages после запуска vimdiff, но ошибки не было замечено:

"a.c" 7L, 74C
"b.c" 6L, 59C

2 ответа

У меня точно такая же проблема. Я заметил следующую ошибку после выполнения:diffupdate

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

Этот файл, очевидно, не существует, поэтому я подозреваю, что @Heptite правильно сказал, что vi не может найти двоичный файл diff. diff.exe уже был в моем PATH, хотя, поэтому я запутался в этом. Тем не менее, символические ссылки, кажется, решить проблему.

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

Ужасно, но я снова работаю.

У меня просто была такая же проблема и бег :diffupdate возвращенный E97: Cannot create diffs

Решение: мое /tmp раздел был полон. diff Внутренняя команда, запущенная vim, не смогла сохранить результат. Просто убрал это и все снова заработало.

Другие вопросы по тегам