Prenez diff de deux fenêtres ouvertes verticales dans Vim
Question
J'ai deux fichiers ouverts. Ils sont ouverts en mode vertical, à côté suivant. Puis-je diff instantanément ces deux fichiers sans quitter ou fermer Vim?
La solution
Pour commencer diffing sur toutes les fenêtres visibles:
:windo diffthis
qui exécute :diffthis
sur chaque fenêtre.
Pour mettre fin à diff Mode:
:diffoff!
(Le !
fait diffoff
appliquer à toutes les fenêtres de l'onglet en cours -. Ce serait bien si diffthis
avait la même fonction, mais il ne fonctionne pas)
Autres conseils
dans chacune des fenêtres que vous voulez diff Type:
:diffthis
Si vous voulez diff toutes les fenêtres ouvertes, vous pouvez faire:
:windo diffthis
(windo
appliquera la commande à toutes les fenêtres ouvertes)
Faisant suite aux réponses précédentes,
-
:windo difft
(abréviation dediffthis
) commencera diff mode dans toutes les fenêtres ouvertes. -
:windo diffo
(abréviation dediffoff
) arrêtera le mode diff dans toutes les fenêtres ouvertes.
J'ai dans mon vimrc
les applications suivantes pour faciliter:
command! Difft windo diffthis
command! Diffo windo diffoff
Suite à des réponses antérieures je me suis adapté le mappage fourni par @cxw Le mappage suivant ferme automatiquement NERDTree et diff les fenêtres ouvertes. Peu importe si NERDTree est proche, il fonctionne de la même façon. Je le fais assez souvent il m'a sauvé un certain temps.
command! Difft NERDTreeClose | windo diffthis