%20%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%20%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D0%B5%D0%BC%20%D0%BA%D0%B0%D0%B6%D0%B4%D0%BE%D0%B3%D0%BE%20%D1%84%D0%B0%D0%B9%D0%BB%D0%B0%20%D1%81%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E%20git%20difftool.png)
"~/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/...
, или абсолютный путь, но это, вероятно, трудно изменить. Вместо этого вы можете повлиять на значение Vim по умолчанию через CDPATH
переменную окружения или просто указать :set cdpath=
свой ~/.vimrc
, чтобы прагматично отключить эти поиски.