【发布时间】:2018-08-24 04:30:22
【问题描述】:
事物的版本:
- 操作系统: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 错误。从那里开始,两个文件彼此相邻打开,但没有针对差异的语法帮助。一旦我退出这两个文件并返回 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 正常工作。
知道是什么原因造成的以及如何解决它吗?
【问题讨论】:
-
diff.tool 的设置是什么? (stackoverflow.com/a/17541084/6309)
-
@VonC 目前 vimdiff。当使用任何默认值时,它确实有效,但我不知道 Git Bash 的默认 diff.tool 是什么。当我使用 vimdiff 作为 diff.tool 时,我得到的结果与上面详述的相同。需要明确的是,现在我只是想让“vimdiff file1.txt file2.txt”在 Git Bash 中正常工作。 Git 尚未在这些测试中发挥作用。一旦成功,我将继续将其设置为 git 的差异和合并工具。谢谢