Wie kann ich zwei Abschnitte der gleichen Datei unterscheiden?

8

Ich habe eine Quelldatei mit zwei ähnlichen, aber subtil verschiedenen Abschnitten. Ich möchte die beiden Abschnitte in ein Unterprogramm mit einem Parameter zusammenführen, der die feinen Unterschiede behandelt, aber ich muss sicher sein, dass ich sie alle kenne, damit ich keine vermisse In solchen Fällen mache ich normalerweise jeden Abschnitt in eine separate Datei und verwende dann tkdiff oder vimdiff, um die Unterschiede hervorzuheben. Gibt es eine Möglichkeit, die Zwischendateien zu überspringen und nur zwei Teile derselben Datei zu vergleichen?

    
Nathan Fellman 12.01.2009, 08:11
quelle

6 Antworten

4

Das linediff Plugin für Vim funktioniert gut für mich. Wählen Sie einen Teil Ihrer Datei visuell aus und geben Sie :Linediff ein. Wählen Sie den anderen Abschnitt visuell aus, und geben Sie :Linediff ein. Es wird vim in den vimdiff -Modus versetzt, der nur die beiden zuvor markierten Bereiche anzeigt. Geben Sie :LinediffReset ein, um den vimdiff-Modus zu beenden.

Weitere Informationen:

Ссылка

Ссылка

    
Christian Long 10.12.2015, 18:12
quelle
5

KDiff3 ist Open Source und auf verschiedenen Plattformen verfügbar, einschließlich Win32 und Linux.

Es hat die Funktion "manuelle Ausrichtung", die von Gishu über Beyond Compare diskutiert wird (was übrigens nicht persönlich verwendet wurde) aber wird von vielen Leuten, die ich kenne, als ein großartiges Werkzeug angesehen.)

Siehe diese Antwort für weitere Beispiele.

    
Stéphane Bonniez 12.01.2009 12:30
quelle
4

Ich benutze Beyond Compare .
Es ermöglicht Ihnen, eine Linie auf jeder Seite auszuwählen und sagen "Manuell ausrichten". Dies sollte für Sie gut funktionieren.

    
Gishu 12.01.2009 08:17
quelle
3

Ich habe @ antwortungswidrigs Antwort in eine bash-Funktion umgearbeitet (ich war nur an den Unterschieden einer einzelnen Datei interessiert, aber dies könnte leicht geändert werden, um zwei verschiedene Dateien zu bearbeiten ...):

%Vor%

Sie nennen die Funktion so ... diff_sections path/to/file 464 483 485 506

    
stephen 11.01.2010 21:03
quelle
1

Jedes Diff-Tool, mit dem Sie die Ausrichtung manuell anpassen können, erledigt die Aufgabe. Diffuse ( Ссылка ) ist mein Favorit und Sie können die Ausrichtung auch manuell anpassen.

    
Derrick Moser 14.01.2009 18:20
quelle
0

Wenn Sie den Anfang und das Ende der Abschnitte beschreiben können, die mit einer Regex zu vergleichen sind, können Sie Folgendes verwenden:

%Vor%

Alternativ können Sie, wenn Sie die Abschnitt für Zeile Nummer beschreiben möchten, tun:

%Vor%

4 10 2 8 ist die Anfangs- und Endzeilennummer für den zu berücksichtigenden Abschnitt aus der ersten Datei und der zweiten Datei.

Sie können die Snippets entweder als Shell-Skripte oder als Aliase speichern.

    
ordnungswidrig 12.01.2009 09:22
quelle

Tags und Links