Guarda tutti i `diffs` git con vimdiff
Domanda
I ha installato git diff
per avvolgere in vimdiff, con " Git diff con Vimdiff " come guida, e sta funzionando come previsto a meno che non ci sono molti file con i cambiamenti.
Quando ci sono più file con modifiche e corro git diff
, si apre il primo file e, dopo aver lasciato la prima istanza di vimdiff, sto presentato con il seguente messaggio:
external diff died, stopping at filename
Questo è un comportamento completamente diverso da quello a cui sono abituato. Ho avuto una configurazione simile in passato con SVN e, quando diffing contro più file, vorrei rivedere il primo file, quindi scrivere e smettere di usare :wq
e il prossimo file con differenze aprirebbe.
Questo non è il caso di Git. Ho provato :n[ext]
, ma così facendo non riempie la finestra di sinistra con il file originale in modo che possa essere diffed contro la versione modificata.
Soluzione
git config --global diff.tool vimdiff
git config --global difftool.prompt false
git config --global alias.d difftool
Typing git d
produce il comportamento previsto, battitura :wq
in cicli vim al file successivo nella changeset.
Altri suggerimenti
Si può provare git difftool
, è stato progettato per fare queste cose.
In primo luogo, è necessario config diff strumento per vimdiff
git config diff.tool vimdiff
Poi, quando si desidera diff, basta usare git difftool
invece di git diff
. Funzionerà come ci si aspetta.
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