2

Я добавил это в ~/.gitconfig:

[diff]
    external = mvimdiff

[difftool]
    prompt = false

и сделал 755 /bin/mvimdiff который:

#!/bin/sh

mvim -d "$2" "$5"

для того, чтобы вызвать MacVim как мой инструмент git diff. Но когда я запускаю команду git diff в папке git, она все равно выводит результат из обычного diff в оболочку. Нет MacVim вообще. Я уверен, что .git/config перезаписывает .gitconfig , и я попытался перезагрузить компьютер для обновления. Почему конфиг не работает?

Спасибо.

1 ответ1

4

Возможно, вам лучше использовать git difftool для вызова «интерактивного» инструмента сравнения. Например:

Адаптировать встроенный инструмент gvimdiff для mvim

git config --global diff.tool gvimdiff
git config --global difftool.gvimdiff.path mvim

Или настройте mvimdiff с нуля:

git config --global diff.tool mvimdiff
git config --global difftool.mvimdiff.cmd 'mvim -f -d "$LOCAL" "$REMOTE"'

Затем запустите git difftool для просмотра каждого файла в MacVim.


Если вы действительно хотите, чтобы сам git diff использовал MacVim, вы можете настроить его следующим образом (без каких-либо внешних файлов скриптов):

git config diff.external 'd() { mvim -f -d "$2" "$5"; }; d'

В любом случае вам нужно убедиться, что соответствующий mvim находится в вашем PATH. Кроме того, вам нужно будет использовать опцию -f («не разветвляться» /«запускать на переднем плане»), поскольку в противном случае git diff , вероятно, удалит временные файлы, прежде чем MacVim сможет их прочитать (хотя бы один файл из каждого вызов будет временным файлом).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .