Magit: Wie man Unterschiede in Linien zeigt

13

Ich habe eine Datei, ich nehme einige Änderungen vor. Hier, wie SmartGit Unterschiede zeigt.

Smartgit

Wie Sie sehen, zeigt es, wo der Unterschied innerhalb der Linie liegt. In der konkreten Position ändert sich der Hintergrund in rote Farbe. Und es ist sehr gut. Ich brauche keine Zeit, um Unterschiede zu finden. Ich sehe sofort, wo der Unterschied liegt.

Nun, wie es in Magit aussieht:

Bildbeschreibung hier eingeben

Wie Sie sehen können, sagt Magit, dass der Unterschied in der GANZEN Linie lag. Es zeigt nicht, wo der Unterschied innerhalb der Linie liegt. Also muss ich manuell herausfinden, wo der Unterschied liegt. Ich muss das jedes Mal tun. Es ist nicht sehr vergleichbar. Angenommen, ich habe Unterschiede in 20 Zeilen. Ich muss viel Zeit aufwenden, um herauszufinden, was sich tatsächlich geändert hat. Es ist nicht sehr gut.

Kann magit Unterschiede in der tatsächlichen Spalte anzeigen, in der die Änderung erfolgt? Wie in SmartGit.

ein_Abonnent
quelle

Antworten:

2

Wenn du das in deiner Konfiguration speichern willst, wie ich, füge es einfach hinzu

(setq magit-diff-refine-hunk (quote all))

zu deinem .emacs.d/init.el


Dies wurde durch die Antwort von Phils inspiriert .

loki
quelle
16

M-x customize-option RET magit-diff-refine-hunk RET

Siehe auch den magit-diff-toggle-refine-hunkBefehl, an Dtden Sie gebunden sind, um das Verhalten im aktuellen Puffer festzulegen. Dient DC-utzum Einschalten der Verfeinerung für alle Hunks im Puffer. Andernfalls werden zu einem bestimmten Zeitpunkt nur die Verfeinerungen für den aktuell ausgewählten Block angezeigt (Aktualisierung, wenn Sie zwischen den Blöcken wechseln).

Um das Aussehen der ‚verfeinert‘ Regionen des diff, Verwendung zu konfigurieren M-x customize-facefür die diff-refine-added, diff-refine-changedund diff-refine-removedGesichter.

Phils
quelle
1

Damit Word Diffs funktionieren, muss Magit in der Lage sein, die diffausführbare Datei zu verwenden.

So stellen Sie sicher, dass M-x ielm RET (executable-find "diff") RETnicht zurückkehrt nil. Wenn dies der Fall ist, nilfügen Sie den Pfad zu dem Ordner hinzu, der Ihre Diff-Datei enthält, und geben Sie die exec-pathVariable mit einM-x ielm RET (add-to-list 'exec-path "c:/Program Files/Git/usr/bin") RET

Als nächstes müssen Sie sicherstellen, dass Magit die diffausführbare Datei tatsächlich verwendet . Geben Sie dazu einen Magit-Statuspuffer ein, drücken Sie Dund vergewissern Sie sich, dass dieser -x Disallow external diff drivers (--no-ext-diff)deaktiviert ist. Andernfalls deaktivieren Sie es mit -x, setzen Sie es als Standard mit sund speichern Sie dann die Standardeinstellungen mit Dw.

Danach können Sie Dtdie magit-diff-refine-hunkOption für Ihren aktuellen Puffer umschalten oder dieser Antwort durch Phils folgen , um diese Einstellung dauerhafter zu machen.

Fliegender Fuchs
quelle
0

Try ediff-toggle-ignore-caseoder compare-ignore-caseVariable. Ich vermute, Ihre Diff-Engine ignoriert den Fall. Könnte auch in diff-Optionen sein (ich bin nicht sicher, was die Einstellungen sind).

Atman50
quelle