Configuré git diff
para envolver en vimdiff, usando " Git Diff with Vimdiff " como guía, y funciona como se esperaba a menos que haya muchos archivos con cambios.
Cuando hay varios archivos con cambios y ejecuto git diff
, abre el primer archivo y, después de salir de la primera instancia de vimdiff, me aparece el siguiente mensaje:
external diff died, stopping at filename
Este es un comportamiento completamente diferente al que estoy acostumbrado. Tuve una configuración similar en el pasado con SVN y, al diferenciarme de varios archivos, revisaría el primer archivo, luego escribiría y dejaría de usar :wq
y se abriría el siguiente archivo con diferencias.
Este no es el caso con Git. Lo intenté :n[ext]
, pero hacerlo no llena la ventana izquierda con el archivo original, por lo que puede diferenciarse con la versión modificada.
df
aliasdiff
ydt
aliasdifftool
. Además, al escribir:qa
en Vim se pasará al siguiente conjunto de cambios sin guardar nada.git diff
quegit difftool
. Así que me he aliasd
a 'diff' y'dt' to
difftool '. La usabilidad es más importante que crear alias con patrones.:w!
lugar de:w
". Eso es porque git llamavimdiff
con la-R
opción. Puedes anularlo congit config --global difftool.vimdiff.cmd 'vimdiff "$LOCAL" "$REMOTE"'
. Eso abrirá vimdiff en modo de escritura.Puedes intentarlo
git difftool
, está diseñado para hacer estas cosas.Primero, necesitas configurar la herramienta diff para vimdiff
Luego, cuando quiera diferenciar, simplemente use en
git difftool
lugar degit diff
. Funcionará como esperabas.fuente
fuente
merge
condiff
las respuestas anteriores hará el truco, es decirgit config --global diff.tool vimdiff
.Para las personas que desean usar otra herramienta de diferencias que no figura en git, digamos con
nvim
. Esto es lo que terminé usando:En mi caso, me puse
<tool name>
anvim -d
e invocar el comando diff confuente