Aller au contenu

Comparaison / Diff

Comparez deux fichiers (ou un fichier avec son tampon non enregistré) et voyez exactement ce qui a changé — ligne par ligne et caractère par caractère — dans une vue côte à côte, puis fusionnez des modifications individuelles d'un côté à l'autre et enregistrez le résultat.

Lancer une comparaison

Tous les moyens de comparer se trouvent dans le menu de premier niveau Comparaison :

Commande Compare
Comparaison ▸ Comparer deux fichiers… Deux fichiers que vous choisissez sur le disque.
Comparaison ▸ Comparer avec la version enregistrée Le tampon actif (vos modifications non enregistrées) avec la version sur disque.
Comparaison ▸ Comparer avec un fichier… Le document actif avec un fichier que vous choisissez.
Comparaison ▸ Comparer avec ▸ Le document actif avec un autre onglet ouvert — le sous-menu liste tous les autres documents ouverts (un * signale des modifications non enregistrées) et compare les tampons en direct, sans enregistrement préalable.
Comparaison ▸ Comparer des dossiers… Deux arborescences de répertoires — fournie par l'extension Comparaison de dossiers.
OctoEdit --diff a b (ligne de commande) Deux fichiers, dans une fenêtre de visualisation autonome — l'intégration git difftool.

La notification de modification de fichier de l'éditeur propose aussi un bouton Comparer, pour examiner un changement externe avant de recharger.

Les fichiers sont décodés selon leur encodage détecté (UTF-8 avec ou sans BOM, UTF-16 LE/BE, ou la page de codes ANSI du système), si bien que les fichiers non UTF-8 se comparent correctement — et enregistrer un côté fusionné ré-encode dans l'encodage d'origine du fichier, BOM compris.

Lire le résultat

La comparaison s'ouvre dans un nouvel onglet avec les deux fichiers côte à côte, et les deux volets défilent ensemble.

  • Les lignes ajoutées / supprimées / modifiées reçoivent une teinte de fond sur toute la ligne, plus une bande assortie à côté des numéros de ligne.
  • Un bloc de deux lignes ou plus qui a été déplacé (supprimé à un endroit, inséré tel quel à un autre — la réindentation ne compte pas) est affiché en bleu des deux côtés au lieu du simple vert/rouge, pour qu'un remaniement ne soit pas pris pour une modification.
  • À l'intérieur d'une paire de lignes modifiées, les caractères exacts qui diffèrent sont encadrés dans une couleur d'accent plus soutenue : une modification d'un mot dans une longue ligne saute aux yeux. La mise en évidence s'aligne sur les limites de mots quand c'est possible.
  • Toutes ces couleurs suivent le thème actif et sont personnalisables par thème (voir l'Éditeur de thèmes) ; des valeurs par défaut raisonnables sont intégrées pour les variantes claire et sombre.

Les très grandes comparaisons (au-delà d'environ 1 Mo) se calculent en arrière- plan — les volets apparaissent immédiatement avec un résumé « Comparaison… », et les marqueurs arrivent quand le diff se termine.

Édition ▸ Copier et Tout sélectionner (et leurs raccourcis) agissent sur le volet qui détient actuellement le curseur — cliquez dans un volet pour choisir la source de la copie.

Commandes de la barre d'outils

Commande Effet
↓ Suivant / ↑ Précédent Amènent les deux volets à la différence suivante/précédente (placée environ au tiers de la vue). Aussi Alt+Down / Alt+Up quand l'onglet de comparaison a le focus.
Ignorer les espaces Considère comme égales les lignes qui ne diffèrent que par l'espacement.
Ignorer la casse Considère comme égales les différences de casse.
Aligné (activé par défaut) Complète le côté le plus court de chaque changement avec des lignes de remplissage vides pour que les régions correspondantes restent exactement côte à côte sur toute la vue. Les fichiers eux-mêmes ne sont jamais modifiés.
Échanger les côtés Échange les deux côtés (titres, contenus, copies en attente et tout le reste) et re-compare dans l'autre sens.
Enregistrer à gauche / Enregistrer à droite Écrit le texte de ce côté dans son fichier après que vous y avez copié des modifications. Actif seulement tant que le côté a des copies non enregistrées ; masqué pour un côté en mémoire.

Un résumé indique le nombre de différences ; des fichiers identiques affichent en plus un bandeau centré « Les fichiers sont identiques » impossible à manquer.

Règle de vue d'ensemble

La fine colonne au bord droit montre toute la comparaison d'un coup d'œil — une marque colorée par différence (vert ajouté, rouge supprimé, ambre modifié, bleu déplacé), positionnée proportionnellement à sa place dans le document. Cliquez sur une marque (ou n'importe où dans la colonne) pour sauter directement à la différence la plus proche.

Fusion : copier une modification vers l'autre côté

Faites un clic droit dans l'un des volets pour agir sur la différence sous le clic :

Élément de menu Effet
Copier / Tout sélectionner Les opérations de presse-papiers habituelles pour les volets en lecture seule.
Copier la modification vers la droite Remplace le bloc de ce changement du côté droit par le bloc du côté gauche.
Copier la modification vers la gauche La même chose, dans l'autre sens.
Annuler la copie Annule la copie la plus récente (aussi Ctrl+Z quand l'onglet de comparaison a le focus).

Notes :

  • Les deux directions fonctionnent quel que soit le volet du changement sur lequel vous faites un clic droit — y compris le côté « vide » d'une insertion ou d'une suppression pure.
  • Les lignes copiées adoptent les fins de ligne du fichier cible, si bien qu'une fusion entre un fichier CRLF et un fichier LF ne produit jamais de fins de ligne mélangées.
  • Après une copie, la comparaison est recalculée immédiatement ; les deux vues restent où elles étaient.
  • Un côté modifié par des copies affiche un bouton Enregistrer à gauche/droite actif ; enregistrer écrit le fichier de façon atomique et efface l'état modifié. Copier vers un côté qui n'a pas de fichier sur disque (p. ex. le côté tampon non enregistré de Comparer avec la version enregistrée) n'est pas possible — il n'y aurait nulle part où l'enregistrer.
  • Fermer un onglet de comparaison avec des copies non enregistrées demande confirmation avant de les abandonner.

Restaurée avec votre session

Une comparaison fichier-à-fichier est mémorisée et rouverte au prochain lancement. Une comparaison avec un tampon non enregistré n'est pas restaurable (le côté en mémoire disparaît quand vous quittez), et les copies non enregistrées ne sont pas conservées — enregistrez-les d'abord.