Funktionsübersicht
Wie kann ich den sprachbewussten Codevergleich in Diff Anything verwenden?
Wechseln Sie zwischen dem intelligenten Vergleich und dem herkömmlichen Zeilenvergleich, mit gewohnter Syntaxhervorhebung, exaktem Quelltext, Bearbeitung, verschobenen Blöcken, Zeilenumbruch und kompaktem Kontext. Die Sprache erkennt Diff Anything an Dateiname, Endung, Shebang-Zeile oder eingefügtem Inhalt.
Smart Diff verwendet eine sprachfamilienbewusste Token-Ausrichtung in allen 117 Nicht-Text-Editorsprachen. Es ignoriert sichere Nur-Layout-Änderungen in Klammer- und Ausdruckssprachen, behält wichtige Einrückungen und Anweisungsneuzeilen bei und behandelt Zeichenfolgen und Kommentare entsprechend der ausgewählten Sprache. Es handelt sich nicht um einen AST-Vergleich und es wird keine semantische Äquivalenz auf Compilerebene beansprucht.
Code wird aus Dateinamen, Erweiterungen, Shebangs und eingefügten Inhalten erkannt. Gemeinsam genutzte Erweiterungen werden vom Inhalt getrennt und Framework-Dateien können eingebettete Implementierungssprachen hervorheben, anstatt auf einfachen Text zurückzugreifen.
Der gepflegte Editor-Katalog umfasst 18 zusätzliche Sprachen in 1.5: Ada, Assembly, COBOL, Crystal, CUDA, D, Elm, Erlang, Fortran, GLSL, Haskell, Haxe, HLSL, LaTeX, LLVM IR, OCaml, Raku und WebAssembly-Text.
Der CLI bietet eine Unicode-sichere hervorgehobene Terminalansicht mit automatischer oder erzwungener Farbe, einer expliziten Sprachüberschreibung und konfigurierbarem Kontext um jedes Stück.

Smart oder Line
Wann eine Änderung in Smart und wann in Line gelesen werden soll
Die Codeüberprüfung wird schwierig, wenn ein Formatierer eine Datei berührt. Ein umschlossener Funktionsaufruf, ein neu eingerückter Block oder eine in eine eigene Zeile verschobene geschweifte Klammer können aus einer Ein-Wort-Korrektur vierzig geänderte Zeilen machen. In der Smart-Ansicht werden diese reinen Layout-Änderungen gelöscht und die tatsächlich geänderten Token hervorgehoben, sodass die Korrektur leicht wiederzufinden ist.
Die Linienansicht zeigt jede Linie genau so, wie sie gespeichert ist. Verwenden Sie es, wenn es sich bei der Änderung um Leerzeichen handelt, wenn Sie einen Block bestätigen möchten, bevor Sie ihn kopieren, oder wenn Sie Zeilennummern mit einem Codeüberprüfungstool abgleichen müssen. Beide Schaltflächen befinden sich nebeneinander in der Textsymbolleiste, und wenn Sie zwischen ihnen wechseln, bleiben beide Dateien und alle von Ihnen vorgenommenen Änderungen erhalten.
Bewegen Sie den Mauszeiger über Smart, um eine kurze Zusammenfassung anzuzeigen, entweder die Anzahl der geänderten Token oder einen Hinweis, dass die Änderung nur die Formatierung betrifft. Smart braucht beide Seiten in der gleichen Sprache. Wenn die beiden Dateien als unterschiedliche Sprachen oder als Nur-Text erkannt werden, ist die Smart-Schaltfläche nicht verfügbar und die Zeilenansicht wird verwendet.
Spracherkennung
Wie die Sprache ausgewählt wird und wie man sie ändert
Das Code-Sprachmenü zeigt, was erkannt wurde, zum Beispiel Auto · TypeScript. Eine Sprache, die Sie dort auswählen, gewinnt über alles andere und gilt für beide Seiten gleichzeitig, wodurch sich die Hervorhebung und die Regeln ändern, die Smart für Zeichenfolgen, Kommentare und Leerzeichen verwendet.
Ohne manuelle Auswahl überprüft Diff Anything bekannte Dateinamen wie Dockerfile oder Cargo.toml, dann die Erweiterung und dann den Inhalt, wenn eine Erweiterung von mehreren Sprachen gemeinsam genutzt wird. Auf diese Weise wird eine .m-Datei als MATLAB oder Objective-C und ein .h-Header als C oder C++ unterschieden. Erweiterungslose Skripte werden anhand ihrer Shebang-Zeile und eingefügte Snippets anhand typischer Sprachmarkierungen erkannt.
Vue-, Svelte-, Astro- und Blade-Vorlagen heben weiterhin die darin enthaltenen Skript- und Stilabschnitte hervor, anstatt die gesamte Datei als einfaches Markup anzuzeigen.
Überprüfungskontrollen
Symbolleisten-Steuerelemente für lange oder umstrukturierte Dateien
Jedes Steuerelement ist ein Umschalter in der Textsymbolleiste und kann mit beiden Ansichten kombiniert werden:
- Moves verbindet einen Codeblock, der an eine neue Stelle verschoben wurde, anstatt ihn als Löschung und Hinzufügung anzuzeigen.
- Compact lässt lange unveränderte Abschnitte zusammenklappen, sodass die veränderten Kerle näher beieinander sitzen.
- Wrap unterbricht lange Zeilen, was bei minimiertem oder generiertem Code hilfreich ist.
- Leerzeichen machen Leerzeichen und Tabulatoren sichtbar, wenn es um Einrückung geht.
- Nebeneinander- und Inline-Umschaltung zwischen zwei Spalten und einer einzelnen zusammengeführten Spalte.
- Das Menü „Ignorieren“ fügt „Leerzeichen ignorieren“, „Leerzeilen ignorieren“, „Groß-/Kleinschreibung und Normalisierung von Zeilenenden ignorieren“ und „Muster ignorieren“ hinzu, sodass übereinstimmender Text, übereinstimmende Zeilen, Kommentare oder Zeichenspalten ausgeblendet werden.
- Diese Linien ausrichten (Command-J auf einem Mac, Strg-J auf Windows) ordnet die Linien mit dem Cursor auf jeder Seite zu, wenn die automatische Übereinstimmung die falschen paart.
Umfang und Pläne
Was Smart vergleicht und was der kostenlose Plan beinhaltet
Smart arbeitet mit Tokens mit Regeln für jede Sprachfamilie. Es behält Einrückungen in Python-ähnlichen Sprachen und Anweisungszeilenumbrüche in Shell-Skripten bei, erstellt jedoch keinen Syntaxbaum und kann Ihnen daher nicht sagen, dass sich zwei verschiedene Implementierungen gleich verhalten.
Der Codevergleich, beide Ansichten sowie Bearbeiten und Speichern sind in der kostenlosen Version enthalten, bis zu 5 MB pro Seite und 10 neue Vergleichssitzungen pro Tag. Pro hebt diese Grenzen auf. Unter Windows kann die Befehlszeile denselben Vergleich mit Syntaxhervorhebung im Terminal anzeigen. Mit --language wählen Sie die Sprache, mit --context die Anzahl unveränderter Zeilen um jeden Änderungsblock.
Im Workflow
So verwenden Sie es
Öffnen Sie beide Versionen
Öffnen Sie „Links“ und „Öffnen Sie rechts“, legen Sie zwei Dateien im Fenster ab oder fügen Sie auf jeder Seite einen Ausschnitt ein.
Überprüfen Sie die Sprache
Sehen Sie sich das Menü „Codesprache“ an und wählen Sie eine Sprache aus, wenn die Datei ungewöhnlich ist oder ohne Namen eingefügt wurde.
Lesen Sie es in Smart
Verwenden Sie Smart, um die tatsächlichen Änderungen in einer neu formatierten Datei zu finden, und aktivieren Sie „Verschiebungen“, wenn der Code neu organisiert wurde.
In der Zeile bestätigen
Wechseln Sie zu „Line“, bevor Sie ein Stück hinüberkopieren, und speichern Sie dann die geänderte Datei.
Nützlich in der Praxis
Wann man es verwenden sollte
Zugehöriges Handbuch
Den passenden Vergleichstyp wählen
Quellen wählen, die automatische Erkennung verstehen und den Vergleichstyp nehmen, der Ihre Frage beantwortet.
Lesen Sie den LeitfadenDirekte Antworten
Fragen zum sprachbewussten Codevergleich.
Warum kann ich Smart nicht auswählen?
Smart muss auf beiden Seiten als dieselbe Sprache erkannt werden. Wenn eine Datei anders oder als reiner Text erkannt wurde, wählen Sie die Sprache im Menü Codesprache aus; es gilt dann für beide Seiten.
Ignoriert Smart Einrückungsänderungen in Python?
Nein. Einrückungen sind in Python-ähnlichen Sprachen sinnvoll, daher behält Smart sie bei. Es ignoriert einen Aufruf oder eine Liste, die anders in ihre Klammern eingeschlossen wurde.
Kann ich zwei aus einem Chat oder einem Ticket kopierte Snippets vergleichen?
Ja. Fügen Sie jeden Ausschnitt auf einer Seite ein. Die Sprache wird anhand des Inhalts erraten und Sie können sie im Menü „Codesprache“ selbst festlegen.
Kann ich das gleiche hervorgehobene Diff in einem Terminal erhalten?
Ja. Starten Sie die App mit --cli und --format terminal. Textvergleiche sind in der kostenlosen Befehlszeile enthalten.
Kostenlos & Pro: Was ist enthalten
Verfügbar im Mac App Store und Microsoft Store. Mit der kostenlosen Desktop-Nutzung können Sie jede Vergleichs-Engine für Dateien bis zu 5 MiB pro Seite und 10 neue Vergleichssitzungen pro lokalem Tag ausprobieren; Sammlungsvorschauen zeigen die ersten 100 Elemente, binäre Vergleiche die ersten 100 Byte-Unterschiede und PDF-Vorschauen die ersten drei Seiten. Der Nur-Text-, JSON- und Jupyter-Notebook-Vergleich ist vollständig und das Öffnen von Dateien über den Finder oder den Datei-Explorer, diffanything://-Links und AppleScript ist kostenlos. Die kostenlose CLI unterstützt Text, JSON und Notebooks. Durch einen einmaligen Pro-Kauf werden die Vorschau- und Sitzungsbeschränkungen aufgehoben und größere Quellen innerhalb technischer Grenzen, gespeicherte Profile und Verlauf, Speichern von Ordner-Snapshots, Exportieren und Drucken von Berichten, JSON-Patch-Export, Anwenden von Patches, Drei-Wege-Zusammenführung und Konfliktlösung, der Git-Merge-Treiber und das Merge-Tool, Ordnersynchronisierung, Batch-Manifeste, vertrauenswürdige Präprozessoren und alle CLI-Modi freigeschaltet.