使用 git difftool 打开每个文件之前,vim(vimdiff)出现错误

使用 git difftool 打开每个文件之前,vim(vimdiff)出现错误
"~/Desktop/project/file.txt" [readonly] 81L, 2480C
Error detected while processing command line:
E344: Can't find directory "src/" in cdpath
E472: Command failed
Press ENTER or type command to continue

^ 打开每个文件之前都会弹出此错误。我不知道错误来自哪里,因为它显示... while processing command line:,然后就空白了……

我用来调用它的命令是git difftool

另外,我调用此函数时所在的目录是~/Desktop/project/src,我假设它从这里获取Can't find directory "src/"

答案1

我在使用 git difftool 时遇到了类似的问题。请检查你的.vimrc或 插件lcd %:p:h。我通过在调用 时添加以下内容解决了该问题lcd %:p:h

if !&diff
  lcd %:p:h
endif

答案2

看起来 Git 是vimdiff~/Desktop/project目录调用的,并且传递文件作为src/...这样的相对路径,Vim 将查阅设置'cdpath',并且其中的任何内容都没有src/目录,因此发生错误(从命令行)。

对于 Git 来说,正确的方法是使用./src/...或绝对路径,但这可能很难改变。相反,您可以通过CDPATH环境变量影响 V​​im 的默认值,或者直接输入:set cdpath=您的~/.vimrc来实际禁用这些查找。

相关内容