Comparaison du contenu de deux fichiers dans Sublime Text

397

J'ai deux référentiels clonés de deux projets open source très similaires, sur lesquels j'ai travaillé dans différentes instances dans Sublime Text 2 pour arriver au résultat souhaité. Le code de ces deux projets a été utilisé. J'utilise Git comme contrôle de version pour mon projet, mais je n'ai pas inclus les projets originaux. Ainsi, je voudrais pouvoir comparer rapidement le contenu de deux fichiers du projet original et comparer les différences entre eux et mon projet.

J'espérais que Sublime Text 2 aurait une fonction "Compare File", mais je n'arrive pas à trouver quoi que ce soit dans les paramètres ou en ligne. Un package ST2 tiers pour accomplir cette tâche fonctionnerait également bien. Une telle tâche est-elle possible dans l'éditeur de texte ST2?

LanceLafontaine
la source

Réponses:

705

Vous pouvez réellement comparer des fichiers en mode natif directement dans Sublime Text.

  1. Accédez au dossier les contenant via Open Folder...ou dans un projet
  2. Sélectionnez les deux fichiers (c'est-à-dire en les maintenant Ctrlsous Windows ou sur macOS) que vous souhaitez comparer dans la barre latérale
  3. Faites un clic droit et sélectionnez l' Diff files...option.

Derek 朕 會 功夫
la source
19
@Derek: en utilisant select en mesure de sélectionner mais pas en mesure de trouver l'option de fichier diff sur clic droit, seulement obtenu l'option de fermeture sur clic droit.
Mohamed Hussain du
66
@MohamedHussain Il y a vraiment deux barres latérales différentes et vous devez être dans la bonne pour que cela fonctionne. Si vous allez dans Fichier> Ouvrir un dossier ..., sélectionnez le dossier dans lequel se trouvent vos fichiers, puis sélectionnez Affichage> Barre latérale> Afficher la barre latérale, vous obtiendrez celui dont vous avez besoin. Vous obtenez l'autre en sélectionnant Affichage> Barre latérale> Afficher les fichiers ouverts, mais celui-ci ne vous permettra pas d'utiliser l'option Fichiers diff ....
Jeramy
25
Malheureusement, cela ne semble plus fonctionner dans la sublime build 3103 sur mac. Dès que je clique avec le bouton droit de la souris, le deuxième fichier est désélectionné,
merlin
8
Ne fonctionne pas pour moi dans la build 3144 sur OSX. Je peux sélectionner deux fichiers dans l'interface de fichier, mais lorsque je fais un Ctrl-clic, un seul devient sélectionné et l'option diff n'est pas là.
James J
4
Ne fonctionne pas pour moi aussi dans 3114 - Windows. Il n'y a pas d'option diff lorsque je clique avec le bouton droit sur des fichiers.
dangsonbk
216

La comparaison côte à côte me semble la plus pratique, bien qu'elle ne soit pas la plus populaire:

UPD: Je dois ajouter que ce plugin peut geler ST tout en comparant les gros fichiers. Ce n'est certainement pas la meilleure décision si vous allez comparer de gros textes.

Dany
la source
11
c'est la solution IMO la plus simple et la plus pratique. Fonctionne bien dans ST3
mihai
5
Fonctionne bien et peut comparer des fichiers de différents emplacements que je n'ai pas réussi à faire avec la comparaison native.
Leo
3
Cela fonctionne également avec la copie du contenu collé dans de nouveaux onglets non enregistrés, ce qui est pratique à la rigueur.
mtone
1
Je souhaite que j'aurais vu cela plus tôt, m'aurait sauvé une journée improductive.
0 au
1
Comparer côte à côte m'a juste aidé.
noob
61

Il existe un certain nombre de plugins diff disponibles via Package Control. J'ai utilisé Sublimerge Pro , qui fonctionnait assez bien, mais c'est un produit commercial (avec une période d'essai illimitée) et de source fermée, donc vous ne pouvez pas le modifier si vous voulez changer quelque chose, ou simplement regarder ses internes. FileDiffs est assez populaire, à en juger par le nombre d'installations, vous pouvez donc essayer celle-ci.

MattDMo
la source
2
J'utilise maintenant FileDiffs et cela fonctionne comme un charme. Merci, réponse acceptée.
LanceLafontaine
1
Eh bien, je ne peux pas comprendre comment utiliser FileDiffs. Pouvez-vous brièvement décrire comment je peux comparer deux fichiers avec celui-ci.
Jamil Ahmed
4
@LanceLafontaine Je ne ferais pas normalement cela, mais cela vous dérangerait-il de changer la réponse acceptée à la réponse de Derek 朕 會 功夫 ci-dessous? Aucun de nous n'a vraiment besoin des points, mais je ne savais pas qu'il y avait un diff intégré à l'époque. Je l'utilise maintenant tout le temps en Sublime. La seule fois où je ne le fais pas, c'est quand j'ai besoin des fonctionnalités étendues d'un outil externe.
MattDMo
Lequel de ces plugins est capable de détecter le mouvement de blocs entiers de texte? Et non seulement dire que certaines lignes manquent ici et y apparaître, mais aussi montrer avec des flèches comment elles se sont déplacées?
skan
Grâce à cette réponse, j'ai installé FileDiffs et ajouté une commande pour utiliser TortoiseMerge.exe à titre de comparaison. Ce fut une énorme amélioration pour mon utilisation quotidienne de la comparaison de code sublime. Merci!
lyubeto le
48

MISE À JOUR
(Compte tenu des votes positifs, je pense qu'il est nécessaire d'avoir une explication complète étape par étape ...)

  1. Dans la barre de menu, cliquez sur File->Open Folder...
  2. Sélectionnez un dossier (le dossier réel n'a pas vraiment d'importance, cette étape consiste simplement à rendre la FOLDERSbarre latérale disponible)
  3. Si aucune barre latérale n'est encore affichée, faites-la apparaître via View->Side Bar ->Show Side Bar
  4. Utilisez ceci FOLDERS barre latérale intitulée pour naviguer jusqu'au premier fichier que vous souhaitez comparer.
  5. Sélectionnez-le (cliquez dessus), maintenez la touche Ctrl enfoncée et sélectionnez le deuxième fichier.
  6. Après avoir sélectionné deux fichiers, faites un clic droit sur l'un des deux et sélectionnez Diff Files...

Il devrait y avoir un nouvel onglet montrant maintenant la comparaison.


Réponse courte originale:
Notez que:

Les "fichiers Diff" n'apparaissent qu'avec la barre latérale "dossiers" (pour ouvrir un dossier: Fichier-> Ouvrir le dossier), pas avec la barre latérale "fichiers ouverts".

langlauf.io
la source
Existe-t-il un moyen de sélectionner ces différentes lignes? L'un apparaît en rouge et l'autre en vert
zeristor
1
Qu'entendez-vous par sélectionner? Mettez-les en surbrillance et par exemple les copier? Ou les extraire? Merci pour la clarification!
langlauf.io
Étant donné que les lignes manquantes sont préfixées par «-», j'en ai sélectionné une, puis je les ai toutes mises en correspondance, j'ai sélectionné la ligne complète et copié. Une manière intégrée serait juste plus de peluches à oublier.
zeristor
5
Je pense qu'il vaut la peine d'expliquer que les deux fichiers ne peuvent pas être ouverts en dur. Si vous avez double-cliqué sur les deux pour les ouvrir tous les deux, vous ne pouvez pas mettre en surbrillance les deux fichiers dans la barre latérale à l'aide du bouton ctrl. Vous devez vous assurer que l'un d'eux est fermé avant de pouvoir sélectionner les deux fichiers. J'ai découvert cela parce que j'avais déjà les deux fichiers ouverts et que je voulais utiliser des fichiers diff ...
Battousai
1
@NaveenDA J'ai adapté ma réponse pour pouvoir supprimer le lien rompu. Merci pour l'astuce!
langlauf.io
25

UPDATE JAN 2018 - spécialement pour Sublime / Mac

(Ceci est très similaire à la réponse de Marty F, mais aborde certains problèmes des réponses précédentes, combine plusieurs suggestions différentes et discute de la distinction critique qui m'a donné des problèmes au début.)

J'utilise Sublime Text 3 (build 3143) sur Mac et j'essaye depuis environ 30 minutes de trouver cette fonction de comparaison de fichiers. Je l'avais utilisé auparavant sur Sublime / Mac sans aucun problème, mais cette fois, c'était plus délicat. Mais, j'ai finalement compris.

  1. Le format de fichier n'a pas besoin d'être UTF-8 . J'ai réussi à comparer des fichiers UTF-8, ISO-8559-1 et Windows-1252.

  2. Il n'y a pas de fichier> ouvrir des dossiers sur Sublime / Mac . De nombreuses instructions ci-dessus commencent par "Sélectionner un fichier> Ouvrir les dossiers", mais cela n'existe pas sur Sublime / Mac.

  3. Fichier comparer les travaux sur une base de projet . Si vous souhaitez comparer deux fichiers, ils doivent être enregistrés sur le disque et faire partie du projet en cours.

  4. Comment ouvrir un projet

    • Si Sublime / Mac n'est pas en cours d'exécution ou s'il fonctionne mais qu'aucune fenêtre n'est ouverte, faites glisser un dossier sur l'application Sublime.
    • Si Sublime / Mac est en cours d'exécution, sélectionnez "Fichier> Ouvrir", accédez au dossier souhaité, ne sélectionnez pas un fichier ou un dossier et cliquez sur "Ouvrir".
  5. Ajoutez un dossier à un projet . Si les fichiers que vous souhaitez comparer ne font pas partie de la même hiérarchie, ouvrez d'abord le dossier contenant l'un des fichiers. Ensuite, sélectionnez "Projet> Ajouter un dossier au projet", accédez au dossier souhaité et cliquez sur "Ouvrir". Vous verrez maintenant deux dossiers de niveau racine dans votre barre latérale.

  6. La barre latérale doit être visible . Vous pouvez soit "Affichage> Barre latérale> Afficher la barre latérale" ou utiliser le raccourci, Commande-K, Commande-B.

  7. Les fichiers doivent être fermés (c'est-à-dire enregistrés) pour pouvoir être comparés . Un simple clic sur un fichier dans la barre latérale n'ouvre pas le fichier, mais il l'affiche. Vous pouvez savoir si un fichier est ouvert s'il est répertorié dans la section "Ouvrir les fichiers" en haut de la barre latérale. Double-cliquer sur un fichier ou apporter une modification à un fichier changera automatiquement l'état d'un fichier en "Ouvrir". Dans ce cas, assurez-vous de le fermer avant d'essayer de comparer.

  8. Sélectionnez des fichiers dans la hiérarchie des dossiers . Mac standard ici,cliquez( seul ) sur le premier fichier, puis sur Commande+clic sur le deuxième fichier. Lorsque vous sélectionnez le premier fichier, vous verrez son contenu, mais il n'est pas ouvert. Ensuite, lorsque vous cliquez sur le second fichier de commande, vous verrez son contenu, mais encore une fois, aucun n'est ouvert. Vous ne remarquerez qu'un seul onglet dans le panneau d'édition.

  9. Le clic de contrôle n'est pas la même chose que le clic droit . C'est celui qui m'a eu. J'utilise mon trackpad et j'ai souvent recours au contrôle-clic comme clic droit ou clic secondaire. Cela ne fonctionne pas pour moi. Cependant, puisque j'ai configuré mon trackpad dans les Préférences Système pour utiliser le coin inférieur droit de mon trackpad comme un clic droit, cela a fonctionné, affichant le menu contextuel, avec "Supprimer", "Révéler dans le Finder", et .... "Fichiers Diff ..."

Voilà! J'espère que ça aidera quelqu'un.

Zonker.in.Geneva
la source
2
Est-il possible de comparer un dossier au lieu de comparer un fichier?
DCBoy
1
jeez! vous venez de sauver les utilisateurs mac!
analyst045
10

MISE À JOUR OCTOBRE 2017 Je ne savais pas que cette fonctionnalité existait dans Sublime Text, mais l'interface semble avoir légèrement changé par rapport à la réponse précédente - au moins sur OS X. Voici les étapes détaillées que j'ai suivies:

  1. Dans la barre de menus, cliquez sur Fichier -> Ouvrir ...
  2. Accédez au DOSSIER qui contient les fichiers à comparer et avec le DOSSIER sélectionné, cliquez sur le bouton Ouvrir, cela fait apparaître la barre latérale des DOSSIERS
  3. Dans la barre latérale DOSSIERS, cliquez sur le premier fichier à comparer
  4. Maintenez la touche Ctrl sous Windows ou ⌘ sous OS X, puis cliquez sur le deuxième fichier
  5. Avec les deux fichiers sélectionnés, faites un clic droit sur l'un et sélectionnez Fichiers Diff ...

Cela ouvre un nouvel onglet montrant la comparaison. Le premier fichier en rouge, le second en vert.

Marty F
la source
8

View - Layout and View - Les groupes feront dans la dernière Sublime 3

par exemple:

Shift+ Alt+ 2-> crée 2 colonnes

Ctrl+ 2-> déplacer le fichier sélectionné vers la colonne 2

C'est pour la comparaison côte à côte. Pour le diff réel, il y a la fonction diff autre déjà mentionnée. Malheureusement, je ne trouve pas de moyen de faire défiler les colonnes en même temps, ce qui serait une fonctionnalité intéressante.

Daniele Dellafiore
la source
1
Et pour fermer un groupe, vous pouvez utiliser Ctrl+ K Ctrl+down
Alex Raj Kaliamoorthy
2

Personne ne parle de Linux mais toutes les réponses ci-dessus fonctionneront. Utilisez simplement Ctrl pour sélectionner plusieurs fichiers. Si vous cherchez à comparer côte à côte, Meld est charmant.

Wannabe JavaGeek
la source
2

L'option Diff n'apparaît que si les fichiers se trouvent dans un dossier faisant partie d'un projet.

Que vous pouvez réellement comparer des fichiers en mode natif directement dans Sublime Text.

Accédez au dossier les contenant via Open Folder ... ou dans un projet Sélectionnez les deux fichiers (c'est-à-dire en maintenant Ctrl sous Windows ou ⌘ sous macOS) que vous souhaitez comparer dans la barre latérale Cliquez avec le bouton droit et sélectionnez les fichiers Diff ... option.

Ricardo
la source
0

Il existe également un plugin BeyondCompare. Il ouvre les 2 fichiers dans unBeyondCompare fenêtre. Assez pratique pour ouvrir des fichiers à partir de la fenêtre sublime.

Vous aurez besoin d'une installation BC3 présente dans le système. Après avoir installé le plugin , vous devrez fournir le chemin de l'installation.

Exemple:

{
    //Define a custom path to beyond compare
    "beyond_compare_path": "G:/Softwares/Beyond Compare 3/BCompare.exe"
}
Aditya Gupta
la source