Prenez le diff de deux fenêtres ouvertes verticales dans Vim

103

J'ai deux fichiers ouverts. Ils sont ouverts en mode vertical, à côté du suivant. Puis-je comparer instantanément ces deux fichiers sans quitter ou fermer Vim?

Fatih Arslan
la source

Réponses:

154

Pour commencer à différer sur toutes les fenêtres visibles:

:windo diffthis

qui s'exécute :diffthissur chaque fenêtre.

Pour mettre fin au mode diff:

:diffoff!

(Les !marques diffoffs'appliquent à toutes les fenêtres de l'onglet actuel - ce serait bien d' diffthisavoir la même fonctionnalité, mais ce n'est pas le cas.)

Néfrubyr
la source
La :windocommande le rend encore meilleur. Merci. Je vais le cartographier pour le rendre plus facile.
Fatih Arslan
1
C'est une bonne réponse, mais notez que la fenêtre de minibufexplorer doit être fermée avant cette opération, si elle est ouverte. Sinon, diff affiche des résultats incorrects.
baldrs
On peut utiliser un alias :windo difft[this]. Réf::help diff
DmitrySandalov
@FatihArslan,: windo diffthis ne fait rien dans mon cas, mais laisse simplement à gauche la colonne grise à côté des numéros de ligne. J'ai deux fichiers Vim différents ouverts.
earik87
22

dans chacune des fenêtres que vous souhaitez différencier, tapez:

:diffthis

Si vous souhaitez différencier toutes les fenêtres ouvertes, vous pouvez faire:

:windo diffthis

( windoappliquera la commande à toutes les fenêtres ouvertes)

Nathan Fellman
la source
7

Suite aux réponses précédentes,

  • :windo difft(abréviation de diffthis) lancera le mode diff dans toutes les fenêtres ouvertes.
  • :windo diffo(abréviation de diffoff) arrêtera le mode diff dans toutes les fenêtres ouvertes.

J'ai les mappages suivants dans mon vimrcpour faciliter les choses:

command! Difft windo diffthis
command! Diffo windo diffoff
cxw
la source
3

Suite aux réponses précédentes, j'ai adapté le mappage fourni par @cxw Le mappage suivant ferme automatiquement NERDTree et diffère les fenêtres ouvertes. Peu importe si NERDTree est proche, il fonctionne de la même manière. Je fais ça assez souvent donc ça m'a fait gagner du temps.

command! Difft NERDTreeClose | windo diffthis
Jordi Freixa
la source