Vergleichen des Inhalts von zwei Dateien in Sublime Text

397

Ich habe zwei geklonte Repositorys von zwei sehr ähnlichen Open-Source-Projekten, an denen ich in Sublime Text 2 in verschiedenen Fällen gearbeitet habe, um zu meinem gewünschten Ergebnis zu gelangen. Es wurde Code aus diesen beiden Projekten verwendet. Ich habe Git als Versionskontrolle für mein Projekt verwendet, aber die ursprünglichen Projekte nicht aufgenommen. Daher möchte ich in der Lage sein, den Inhalt von zwei Dateien des ursprünglichen Projekts schnell zu vergleichen und die Unterschiede zwischen ihnen und meinem Projekt zu vergleichen.

Ich hatte gehofft, dass Sublime Text 2 eine Funktion zum Vergleichen von Dateien haben würde, aber ich kann in den Einstellungen oder online nichts finden, was damit zu tun hat. Ein ST2-Paket eines Drittanbieters zur Erfüllung dieser Aufgabe würde ebenfalls gut funktionieren. Ist eine solche Aufgabe im ST2-Texteditor möglich?

LanceLafontaine
quelle

Antworten:

705

Sie können Dateien direkt in Sublime Text vergleichen.

  1. Navigieren Sie durch Open Folder...oder in einem Projekt zu dem Ordner, in dem sie enthalten sind
  2. Wählen Sie die beiden Dateien (dh Ctrlunter Windows oder MacOS) aus, die Sie in der Seitenleiste vergleichen möchten
  3. Klicken Sie mit der rechten Maustaste und wählen Sie die Diff files...Option.

Derek 朕 會 功夫
quelle
19
@Derek: Wenn Sie select auswählen, um die Diff-Dateioption auszuwählen, aber nicht zu finden, wenn Sie mit der rechten Maustaste klicken, erhalten Sie die Option close mit der rechten Maustaste.
Mohamed Hussain
65
@MohamedHussain Es gibt wirklich zwei verschiedene Seitenleisten und Sie müssen in der richtigen sein, damit dies funktioniert. Wenn Sie zu Datei> Ordner öffnen ... gehen, den Ordner auswählen, in dem sich Ihre Dateien befinden, und dann Ansicht> Seitenleiste> Seitenleiste anzeigen auswählen, erhalten Sie den gewünschten Ordner. Sie erhalten den anderen, indem Sie Ansicht> Seitenleiste> Offene Dateien anzeigen auswählen. In diesem Fall können Sie jedoch die Option Diff-Dateien ... nicht verwenden.
Jeramy
25
Dies scheint in Sublime Build 3103 auf dem Mac leider nicht mehr zu funktionieren. Sobald ich mit der rechten Maustaste klicke, wird die zweite Datei abgewählt,
Merlin
8
Funktioniert nicht für mich in Build 3144 unter OSX. Ich kann zwei Dateien in der Dateischnittstelle auswählen, aber wenn ich bei gedrückter Strg-Taste klicke, wird nur eine ausgewählt und die Option diff ist nicht vorhanden.
James J
4
Funktioniert auch bei 3114 nicht für mich - Windows. Es gibt keine Diff-Option, wenn ich mit der rechten Maustaste auf Dateien klicke.
Dangsonbk
216

Der Vergleich von Side-by-Side scheint mir am bequemsten zu sein, obwohl er nicht der beliebteste ist:

UPD: Ich muss hinzufügen, dass dieses Plugin ST beim Vergleichen großer Dateien einfrieren kann. Es ist sicherlich nicht die beste Entscheidung, wenn Sie große Texte vergleichen wollen.

Dany
quelle
11
Dies ist die einfachste und bequemste Lösung IMO. Funktioniert gut in ST3
mihai
5
Funktioniert gut und kann Dateien von verschiedenen Speicherorten vergleichen, die ich mit dem nativen Vergleich nicht geschafft habe.
Leo
3
Dies funktioniert auch mit kopierten Inhalten in neuen nicht gespeicherten Registerkarten, was zur Not praktisch ist.
Ton
1
Ich wünschte, ich hätte das früher gesehen, hätte mir einen unproduktiven Tag erspart.
0_o
1
Vergleiche Seite an Seite haben mir gerade geholfen.
Noob
61

Es gibt eine Reihe von Diff-Plugins, die über Package Control verfügbar sind. Ich habe Sublimerge Pro verwendet , das gut genug funktioniert hat, aber es ist ein kommerzielles Produkt (mit unbegrenzter Testphase ) und Closed-Source, sodass Sie es nicht optimieren können, wenn Sie etwas ändern oder nur die Interna betrachten möchten. FileDiffs ist sehr beliebt, gemessen an der Anzahl der Installationen. Vielleicht möchten Sie diese ausprobieren.

MattDMo
quelle
2
Ich benutze jetzt FileDiffs und es funktioniert wie ein Zauber. Danke, Antwort angenommen.
LanceLafontaine
1
Nun, ich kann nicht herausfinden, wie man FileDiffs benutzt. Können Sie kurz beschreiben, wie ich zwei Dateien damit vergleichen kann?
Jamil Ahmed
4
@LanceLafontaine Normalerweise würde ich das nicht tun, aber würde es Ihnen etwas ausmachen, die akzeptierte Antwort auf die Antwort von Derek changing 會 功夫 unten zu ändern? Keiner von uns braucht die Punkte wirklich , aber ich wusste nicht, dass es zu dieser Zeit einen eingebauten Unterschied gab. Ich benutze es jetzt die ganze Zeit, wenn ich in Sublime bin. Das einzige Mal, wenn ich die erweiterten Funktionen eines externen Tools benötige, ist dies nicht der Fall.
MattDMo
Welches dieser Plugins kann die Bewegung ganzer Textblöcke erkennen? Und nicht nur sagen, dass hier einige Linien fehlen und dort erscheinen, sondern auch mit Pfeilen zeigen, wie sie sich bewegt haben?
Skan
Dank dieser Antwort habe ich FileDiffs installiert und commad hinzugefügt, um TortoiseMerge.exe zum Vergleich zu verwenden. Es war eine enorme Verbesserung für meinen täglichen Gebrauch des erhabenen Codevergleichs. Vielen Dank!
Lyubeto
48

UPDATE
(Angesichts der positiven Stimmen ist meiner Meinung nach eine vollständige schrittweise Erklärung erforderlich ...)

  1. Klicken Sie in der Menüleiste auf File ->Open Folder...
  2. Wählen Sie einen Ordner aus (der eigentliche Ordner spielt keine Rolle, dieser Schritt dient nur zum Erstellen des Ordners FOLDERS Seitenleiste verfügbar ).
  3. Wenn noch keine Seitenleiste angezeigt wird, lassen Sie sie über View-> Side Bar-> anzeigenShow Side Bar
  4. Benutze das FOLDERS Seitenleiste mit dem Titel, um zur ersten Datei zu navigieren, die Sie vergleichen möchten.
  5. Wählen Sie es aus (klicken Sie darauf), halten Sie die Strg-Taste gedrückt und wählen Sie die zweite Datei aus.
  6. Wenn Sie zwei Dateien ausgewählt haben, klicken Sie mit der rechten Maustaste auf eine der beiden und wählen Sie Diff Files...

Es sollte jetzt einen neuen Tab geben, der den Vergleich anzeigt.


Ursprüngliche kurze Antwort:
Beachten Sie Folgendes:

Die "Diff-Dateien" werden nur in der Seitenleiste "Ordner" angezeigt (um einen Ordner zu öffnen: Datei-> Ordner öffnen), nicht in der Seitenleiste "Dateien öffnen".

langlauf.io
quelle
Gibt es eine Möglichkeit, diese verschiedenen Zeilen auszuwählen? Einer erscheint in Rot und der andere in Grün
Zeristor
1
Was meinst du mit auswählen? Markieren und zB kopieren? Oder sie extrahieren? Danke für die Klarstellung!
langlauf.io
Da den fehlenden Zeilen das Präfix '-' vorangestellt ist, habe ich eine ausgewählt und dann alle abgeglichen, die vollständige Zeile ausgewählt und kopiert. Ein eingebauter Weg wäre einfach mehr Flaum zu vergessen.
Zeristor
5
Ich denke, es lohnt sich zu erklären, dass beide Dateien nicht hart geöffnet werden können. Wenn Sie beide doppelt angeklickt haben, damit beide geöffnet werden, können Sie nicht beide Dateien in der Seitenleiste mit der Strg-Taste markieren. Sie müssen sicherstellen, dass eine davon geschlossen ist, bevor Sie beide Dateien auswählen können. Ich fand das heraus, weil ich bereits beide Dateien geöffnet hatte und diff-Dateien verwenden wollte ...
Battousai
1
@NaveenDA Ich habe meine Antwort angepasst, um den defekten Link entfernen zu können. Danke für den Tipp!
langlauf.io
25

UPDATE JAN 2018 - speziell für Sublime / Mac

(Dies ist der Antwort von Marty F sehr ähnlich, behandelt jedoch einige Probleme aus früheren Antworten, kombiniert verschiedene Vorschläge und erörtert die kritische Unterscheidung, die mir zuerst Probleme bereitete.)

Ich verwende Sublime Text 3 (Build 3143) auf einem Mac und habe etwa 30 Minuten lang versucht, diese Funktion zum Vergleichen von Dateien zu finden. Ich hatte es zuvor ohne Probleme auf Sublime / Mac verwendet, aber diesmal war es schwieriger. Aber ich habe es endlich herausgefunden.

  1. Das Dateiformat muss nicht UTF-8 sein . Ich habe erfolgreich Dateien verglichen, die UTF-8, ISO-8559-1 und Windows-1252 sind.

  2. Auf Sublime / Mac gibt es keine Datei> Ordner öffnen . Viele der obigen Anweisungen beginnen mit "Datei auswählen> Ordner öffnen", aber das gibt es auf Sublime / Mac nicht.

  3. Der Dateivergleich funktioniert auf Projektbasis . Wenn Sie zwei Dateien vergleichen möchten, müssen diese auf der Festplatte und in einem Teil des aktuellen Projekts gespeichert werden.

  4. Möglichkeiten zum Öffnen eines Projekts

    • Wenn Sublime / Mac nicht ausgeführt wird oder wenn es ausgeführt wird, aber keine Fenster geöffnet sind, ziehen Sie einen Ordner auf die Sublime-App.
    • Wenn Sublime / Mac ausgeführt wird, wählen Sie "Datei> Öffnen", navigieren Sie zum gewünschten Ordner, wählen Sie keine Datei oder keinen Ordner aus und klicken Sie auf "Öffnen".
  5. Fügen Sie einem Projekt einen Ordner hinzu . Wenn die zu vergleichenden Dateien nicht Teil derselben Hierarchie sind, öffnen Sie zuerst den Ordner, der eine der Dateien enthält. Wählen Sie dann "Projekt> Ordner zum Projekt hinzufügen", navigieren Sie zu dem gewünschten Ordner und klicken Sie auf "Öffnen". In Ihrer Seitenleiste werden nun zwei Ordner auf Stammebene angezeigt.

  6. Die Seitenleiste muss sichtbar sein . Sie können entweder "Ansicht> Seitenleiste> Seitenleiste anzeigen" oder die Verknüpfung Befehl-K, Befehl-B verwenden.

  7. Dateien müssen zum Vergleichen geschlossen (dh gespeichert) werden . Durch einmaliges Klicken auf eine Datei in der Seitenleiste wirddie Datei nicht geöffnet, sondern angezeigt. Sie können feststellen, ob eine Datei geöffnet ist, wenn sie im Abschnitt "Dateien öffnen" oben in der Seitenleiste aufgeführt ist. Durch Doppelklicken auf eine Datei oder Ändern einer Datei wird der Status einer Datei automatisch in "Öffnen" geändert. Schließen Sie es in diesem Fall unbedingt, bevor Sie versuchen, es zu vergleichen.

  8. Wählen Sie Dateien aus der Ordnerhierarchie aus . Standard-Mac-Shorcut hier, ( einzeln ) klicken Sie auf die erste Datei und dann beigedrückter Befehlstasteauf die zweite Datei. Wenn Sie die erste Datei auswählen, wird deren Inhalt angezeigt, sie ist jedoch nicht geöffnet. Wenn Sie dann bei gedrückter Befehlstaste auf die zweite Datei klicken, wird deren Inhalt angezeigt, aber auch hier sind keine geöffnet. Sie werden nur eine Registerkarte im Bearbeitungsfeld bemerken.

  9. Steuerklick ist nicht dasselbe wie Rechtsklick . Dies war derjenige, der mich erwischt hat. Ich benutze mein Trackpad und greife häufig auf Rechtsklick als Rechtsklick oder Sekundärklick zurück. Das funktioniert bei mir nicht. Da ich mein Trackpad in den Systemeinstellungen so konfiguriert habe, dass die untere rechte Ecke meines Trackpads als Rechtsklick verwendet wird, hat dies funktioniert und das Kontextmenü mit "Löschen", "Im Finder anzeigen" und ... angezeigt. "Diff-Dateien ..."

Voilà! Ich hoffe das hilft jemandem.

Zonker.in.Geneva
quelle
2
Ist es möglich, einen Ordnervergleich anstelle eines Dateivergleichs durchzuführen?
DCBoy
1
Herrgott! Sie haben gerade die Mac-Benutzer gespeichert!
Analyst045
10

UPDATE OKTOBER 2017 Ich wusste nie, dass diese Funktion in Sublime Text vorhanden ist, aber die Benutzeroberfläche scheint sich gegenüber der vorherigen Antwort geringfügig geändert zu haben - zumindest unter OS X. Hier sind die detaillierten Schritte, die ich befolgt habe:

  1. Klicken Sie in der Menüleiste auf Datei -> Öffnen ...
  2. Navigieren Sie zu dem ORDNER, der die zu vergleichenden Dateien enthält, und klicken Sie bei ausgewähltem ORDNER auf die Schaltfläche Öffnen. Dadurch wird die Seitenleiste ORDNER angezeigt
  3. Klicken Sie in der FOLDERS-Seitenleiste auf die erste zu vergleichende Datei
  4. Halten Sie die Strg-Taste unter Windows oder ⌘ unter OS X gedrückt und klicken Sie auf die zweite Datei
  5. Wenn beide Dateien ausgewählt sind, klicken Sie mit der rechten Maustaste auf eine und wählen Sie Diff-Dateien ...

Dies öffnet eine neue Registerkarte mit dem Vergleich. Die erste Datei in Rot, die zweite in Grün.

Marty F.
quelle
8

Ansicht - Layout und Ansicht - Gruppen werden in der neuesten Version von Sublime 3 ausgeführt

z.B:

Shift+ Alt+ 2-> erstellt 2 Spalten

Ctrl+ 2-> ausgewählte Datei in Spalte 2 verschieben

Dies dient zum Vergleich nebeneinander. Für das tatsächliche Diff gibt es die bereits erwähnte Diff-Funktion. Leider kann ich keine Möglichkeit finden, Spalten gleichzeitig zu scrollen, was eine nette Funktion wäre.

Daniele Dellafiore
quelle
1
Und um eine Gruppe zu schließen, können Sie Ctrl+ K Ctrl+down
Alex Raj Kaliamoorthy
2

Niemand spricht über Linux, aber alle oben genannten Antworten werden funktionieren. Verwenden Sie einfach Strg, um mehr als eine Datei auszuwählen. Wenn Sie Seite an Seite vergleichen möchten, ist Meld reizend.

Wannabe JavaGeek
quelle
2

Die Diff-Option wird nur angezeigt, wenn sich die Dateien in einem Ordner befinden, der Teil eines Projekts ist.

Dann können Sie Dateien direkt in Sublime Text vergleichen.

Navigieren Sie über Ordner öffnen ... oder in einem Projekt zu dem Ordner, in dem sie enthalten sind. Wählen Sie in der Seitenleiste die beiden zu vergleichenden Dateien aus (dh indem Sie bei Windows die Strg-Taste oder unter macOS ⌘ gedrückt halten). Klicken Sie mit der rechten Maustaste und wählen Sie die Diff-Dateien aus. Möglichkeit.

Ricardo
quelle
0

Es gibt auch ein BeyondCompare-Plugin. Es öffnet die 2 Dateien in einem BeyondCompareFenster. Ziemlich praktisch, um Dateien aus dem erhabenen Fenster zu öffnen.

Sie benötigen eine BC3-Installation im System. Nach der Installation des Plugins müssen Sie den Pfad zur Installation angeben.

Beispiel:

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