cygwin 中的 vimdiff 无法正常工作

cygwin 中的 vimdiff 无法正常工作

当我在 cygwin 中使用 vimdiff 比较两个文件时,

vimdiff a.c b.c

所有线条均已折叠(如下所示)

全折叠

然后我zR打开所有文件夹,但没有显示任何差异。

没有不同

另一件奇怪的事情是,当我开始添加新行(通过 BUTTON 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,但情况仍然相同。

在 vimdiff 启动后尝试:messages,但没有看到错误:

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

答案1

我也遇到了同样的问题。执行 :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

虽然很丑,但我又回来工作了。

答案2

我刚刚遇到了同样的问题,并且又:diffupdate恢复了运行E97: Cannot create diffs

解决方案:我的/tmp分区已满。vimdiff内部运行的命令无法存储结果。只需清理一下,一切就恢复正常了。

相关内容