Ich habe mich gefragt, ob es möglich ist, die Tabsize in git-gui von 8 Zeichen auf 4 zu ändern. Das einzige, was ich gefunden habe, war core.whitespace = tabsize=4
, dass dies nur diff betrifft.
Der Grund, warum ich danach frage, ist, dass ich die Verwendung von Tabulatoren langsam auslaufe und stattdessen 4-Leerzeichen-Einrückungen verwende. Dies kann jedoch zu verwirrenden Ergebnissen führen, wenn der Unterschied in git-gui betrachtet wird, da die Tabsize etwa 8 Zeichen beträgt.
Ich weiß, dass ein einfaches :retab
in Vim mein Problem löst, aber ich muss ziemlich häufig an großen Dateien mit einer langfristigen Historie arbeiten, die Änderungen in separaten Zweigen haben können. Daher kann ich nicht immer alle Tabs einfach konvertieren.
Ich habe nachgeforscht.
Die Konfiguration
core.whitespace
hat nichts damit zu tun, wie Registerkarten angezeigt werden. Es wird nur für Git verwendet, um tabulatorbedingte Whitespace-Fehler zu erkennen. Beispiel: Wennindent-with-non-tab
aktiviert und aufcore.whitespace
gesetzttabwidth=4
ist und eine Zeile mit mindestens 4 Leerzeichen eingerückt wird, meldet git einen Fehler.Für Git ist ein Tabulatorzeichen, abgesehen von den Funktionen zur Erkennung von Whitespace-Fehlern, ein Zeichen wie jedes andere Zeichen. Es wird verglichen und auf das Tool abgelegt, mit dem die Zeichen angezeigt werden. Das heißt, um die angezeigte Tabulatorbreite zu konfigurieren, müssen Sie die "Frontends" von Git konfigurieren. In diesem Fall
git diff
wäre "less" (das Unix-Tool "less"). In diesem Fallgit gui
wäre es Git-Gui.Weniger konfigurieren ist einfach. Sie können die Git-Konfiguration so einstellen
core.pager
, dass weniger eingerichtet wird, um eine Registerkarte mit 4 Leerzeichen anzuzeigen (weniger hat einen Parameter,-xn
auf den die Tabulatorbreite eingestellt werden kannn
).Die Konfiguration von git-gui gestaltete sich erheblich schwieriger. Git-gui ist in Tcl / Tk geschrieben. Ich habe eine Tcl / Tk- Option gefunden , um die Tabulatorbreite in Text-Widgets zu konfigurieren. Ich habe auch eine Zeile gefunden, in der
git-gui.sh
es aussieht, als würde das Text-Widget initialisiert.Dies ist Zeile 3346 der Datei
git-gui.sh
in Git-Version 1.7.5:Ich habe das nach dem Tcl / Tk-Handbuch folgendermaßen geändert:
Das schien keine Wirkung zu haben. Ich habe verschiedene Werte für ausprobiert
-tabs
und sie hatten einige Auswirkungen auf die angezeigte Registerbreite. Es scheint also die richtige Zeile zu sein, die geändert werden muss.Leider scheint Tcl / Tk keinen Begriff für die Tabulatorbreite in Zeichen zu haben, stattdessen muss die Tabulatorbreite in Pixel oder Zentimetern angegeben werden.
Beachten Sie, dass ich keinerlei Erfahrung mit Tcl / TK habe. Vielleicht übersehen wir hier nur etwas Einfaches.
Wie auch immer, jetzt wissen Sie, wo Sie anfangen sollen zu graben. Denken Sie daran, sich hier zu melden, wenn Sie eine funktionierende Lösung haben. Viel Glück.
quelle
Ich habe Recherchen von Lesmana ausgearbeitet .
Die Linie
erwähnt durch Lesmana sollte folgende Fassung:
Danach kann die Größe der Tabs mit der Option "tabsize" im Abschnitt [gui] der Git-Konfigurationsdatei (aka gui.tabsize) eingestellt werden. Schlechte Nachrichten:
Getestet mit:
quelle