Я настроил git diff
обертку в vimdiff, используя в качестве руководства « Git Diff with Vimdiff », и он работает, как и ожидалось, если не будет много файлов с изменениями.
Когда есть несколько файлов с изменениями, и я запускаю git diff
, он открывает первый файл, и после выхода из первого экземпляра vimdiff мне выдается следующее сообщение:
external diff died, stopping at filename
Это совершенно другое поведение, чем я привык. В прошлом у меня была похожая настройка с SVN, и, когда я сравнивал несколько файлов, я просматривал первый файл, затем записывал и выходил из него, :wq
и открывался следующий файл с различиями.
Это не относится к Git. Я пытался :n[ext]
, но при этом не заполняет левое окно исходным файлом, чтобы его можно было сравнить с измененной версией.
df
псевдонимdiff
иdt
псевдонимdifftool
. Кроме того, ввод:qa
Vim будет циклически переходить к следующему набору изменений без сохранения чего-либо.git diff
чемgit difftool
. Таким образом, я получил псевдонимd
'diff' и'dt' to
difftool '. Удобство в использовании имеет значение, чем создание псевдонимов с шаблоном.:w!
вместо:w
". Это потому что git звонитvimdiff
с-R
опцией. Вы можете изменить это сgit config --global difftool.vimdiff.cmd 'vimdiff "$LOCAL" "$REMOTE"'
. Это откроет vimdiff в режиме записи.Вы можете попробовать
git difftool
, он предназначен для этого.Во-первых, вам нужно настроить diff для vimdiff.
Затем, когда вы хотите diff, просто используйте
git difftool
вместоgit diff
. Это будет работать, как вы ожидаете.источник
источник
merge
сdiff
в приведенных выше ответов будет делать трюк, то естьgit config --global diff.tool vimdiff
.Для людей, которые хотят использовать другой инструмент сравнения, не указанный в git, скажем, с
nvim
. вот что я в итоге использовал:В моем случае, я поставил
<tool name>
вnvim -d
и вызвать команду дифф систочник