ошибки vim (vimdiff) перед открытием каждого файла с помощью git difftool

ошибки vim (vimdiff) перед открытием каждого файла с помощью git difftool
"~/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, чтобы прагматично отключить эти поиски.

Связанный контент