E97说,Vimdiff在Git Bash中不起作用:无法创建差异

时间:2018-08-24 04:30:23

标签: git vim git-bash vimdiff

事物的版本:

  • 操作系统:Win 8.1
  • Vim:8.1
  • Git:2.18.0.windows.1
  • GNU bash:4.4.19(2)

我正在尝试在Git Bash中使用vimdiff,但得到E97:Cannot create diffs error。从那里,两个文件彼此相邻打开,但是没有语法帮助。退出两个文件并返回到bash终端后,我将看到以下内容:

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

在我看来,Git Bash在diff程序中查找的位置错误。但是它仍然将文件传递到vim中,所以我不确定。 Git Bash带来了它自己的vim副本,其中包含所有支持文件

/usr/share/vim/vim81/

但其中包含exe文件(vimdiff.exe,vim.exe等)

/usr/bin/

如果我跑步

$ which -a vimdiff

它返回

/usr/bin/vimdiff
/bin/vimdiff
/usr/bin/vimdiff

这是全新安装的Git。

我已经使用了Git Bash文件夹中vimdiff的完整路径。我还创建了两个测试文件,并在/ usr / bin /目录中对它们运行vimdiff并获得了相同的结果。

如果我通过进入cmd并转到同一目录并在相同文件上使用它们来在本地安装vim,它将按预期工作。这只是在Git Bash中发生的。我想将vimdiff设置为我的git difftool,但需要使vimdiff正常工作。

关于导致此问题的原因以及如何解决的任何想法?

1 个答案:

答案 0 :(得分:2)

实际上,系统正在diff程序中寻找它。 我遇到了同样的问题,并通过在vim期望的地方创建到diff工具的链接来解决了这个问题。

  • 在git bash中,转到/usr/share/vim
  • 创建链接:ln -s /usr/bin/diff vim81diff

在我的〜/ _vimrc文件中,有一个MyDiff()函数,该函数期望diff可执行文件由后缀为$VIMEXECUTUABLE的{​​{1}}组成,从而导致diff,而不是在我的git bash安装中。

我不知道问题是否重要,但是我在Windows 10上安装了单独的vim 8.1,该安装使用相同的_vimrc。