Comparaison de fichiers

Voici une des fonctions les plus importantes lorsqu’il s’agit s’agit par exemple de comparer plusieurs versions de source.
Pour cela il est d’appeler le programme vimdiff avec comme paramètres les 2 fichiers à comparer.

$ vimdiff test.txt test2.txt

Voici le résultat observé :

vimdiff

Par défaut, la coloration syntaxique est active, ce qui rend la lecture très intuitive.
On constate par exemple que la couleur violette indique une modification d’une partie de la ligne, le rouge indiquant le texte ajouté ( » pour les non initiés » dans notre exemple).
Les lignes avec des tirets ——- signifie que la ligne est supprimée.

Par ailleurs, on constate la dernière ligne commence par « + » au niveau de la marge gauche. Celle-ci indique un repli de 27 lignes strictement identiques sur les 2 fichiers.
Cela facilite grandement la lecture sur des fichiers importants.
Pour ouvrir le repli, vous pouvez appuyer sur zo. Le bloc dissimulé est alors affiché mais il est toujours possible de fermer ce repli via la commande zc n’importe où dans le bloc.
A noter que cette fonction n’existe pas sur plugin Compare de np++ (ie. Notepad++).

Si vous souhaitez lancer une différence de fichier lorsque vous êtes déjà dans vim, ouvrez le premier fichier :
:edit test.txt
Puis utilisez la commande suivante:
:vertical diffsplit test2.txt
La commande :vertical permet de faire une séparation verticale. Par défaut la séparation est horizontale.

Si vous souhaitez appliquer un fichier de patch à un fichier existant et observer les différences, il suffit d’utiliser la commande :vertical diffpatch fichier_patch.diff

Autre commande indispensable, pouvoir naviguer rapidement d’une différence à une autre.
]c Différence suivante
[c Différence précédente

Vous aurez évidemment remarqué que lorsque vous faites défilé le curseur sur l’un des deux fichiers, le défilement s’effectue sur les deux fichiers en même temps.
Il est possible de désactiver cette fonction par l’option :set noscrollbind

Si vous modifiez les fichiers lors d’une comparaison, il est fort possible que la surbrillance ne soit pas à jour.
Pour rafraîchir cette surbrillance, tapez :diffupdate

Pour appliquer la différence sur l’autre fichier, utilisez la commande dp (diff put).
Inversement la commande do applique la modification de l’autre fichier sur le fichier courant.
Ces modifications s’appliquent sur les buffers et non les fichiers sur disque.

Laisser un commentaire