Ответ 1
git config --global diff.tool vimdiff
git config --global difftool.prompt false
git config --global alias.d difftool
Ввод git d
дает ожидаемое поведение, набрав :wq
в циклах vim в следующий файл в наборе изменений.
Я устанавливаю git diff
для вворачивания в vimdiff, используя " Git Diff with Vimdiff" в качестве руководства, и он работает как ожидалось если нет много файлов с изменениями.
Когда есть несколько файлов с изменениями, и я запускаю git diff
, он открывает первый файл и после выхода из первого экземпляра vimdiff мне представлено следующее сообщение:
external diff died, stopping at filename
Это совершенно другое поведение, чем я привык. У меня была аналогичная установка в прошлом с SVN, и, когда я был против нескольких файлов, я просмотрел первый файл, затем напишу и закрою с помощью :wq
, и откроется следующий файл с различиями.
Это не относится к Git. Я пробовал :n[ext]
, но это не заполняет левое окно исходным файлом, чтобы его можно было отличать от модифицированной версии.
git config --global diff.tool vimdiff
git config --global difftool.prompt false
git config --global alias.d difftool
Ввод git d
дает ожидаемое поведение, набрав :wq
в циклах vim в следующий файл в наборе изменений.
Вы можете попробовать git difftool
, он предназначен для этого.
Во-первых, вам нужно настроить инструмент diff для vimdiff
git config diff.tool vimdiff
Затем, когда вы хотите использовать diff, просто используйте git difftool
вместо git diff
. Он будет работать так, как вы ожидаете.
Git accepts kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge,
and opendiff as valid diff tools. You can also set up a custom tool.
git config --global diff.tool vimdiff
git config --global diff.tool kdiff3
git config --global diff.tool meld
git config --global diff.tool xxdiff
git config --global diff.tool emerge
git config --global diff.tool gvimdiff
git config --global diff.tool ecmerge