Просмотр всех `git diffs` с помощью vimdiff

Я устанавливаю git diff для вворачивания в vimdiff, используя " Git Diff with Vimdiff" в качестве руководства, и он работает как ожидалось если нет много файлов с изменениями.

Когда есть несколько файлов с изменениями, и я запускаю git diff, он открывает первый файл и после выхода из первого экземпляра vimdiff мне представлено следующее сообщение:

external diff died, stopping at filename

Это совершенно другое поведение, чем я привык. У меня была аналогичная установка в прошлом с SVN, и, когда я был против нескольких файлов, я просмотрел первый файл, затем напишу и закрою с помощью :wq, и откроется следующий файл с различиями.

Это не относится к Git. Я пробовал :n[ext], но это не заполняет левое окно исходным файлом, чтобы его можно было отличать от модифицированной версии.

Ответ 1

git config --global diff.tool vimdiff
git config --global difftool.prompt false
git config --global alias.d difftool

Ввод git d дает ожидаемое поведение, набрав :wq в циклах vim в следующий файл в наборе изменений.

Ответ 2

Вы можете попробовать git difftool, он предназначен для этого.

Во-первых, вам нужно настроить инструмент diff для vimdiff

git config diff.tool vimdiff

Затем, когда вы хотите использовать diff, просто используйте git difftool вместо git diff. Он будет работать так, как вы ожидаете.

Ответ 3

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