Zastanawiałem się, czy można zmienić tabsize w git-gui z 8 znaków na 4. Jedyną rzeczą, którą znalazłem, było to, core.whitespace = tabsize=4
że wpływa tylko na różnicę.
Powodem, dla którego pytam, jest to, że powoli wycofuję użycie tabulatorów i zamiast tego używam wcięcia 4-spacji. Może to jednak dawać mylące wyniki podczas oglądania różnic w git-gui, ponieważ tabsize ma około 8 znaków.
Wiem, że prosty :retab
w Vimie rozwiązuje mój problem, ale dość często muszę pracować nad dużymi plikami o długiej historii, które mogą mieć modyfikacje w oddzielnych gałęziach. Dlatego nie zawsze mogę po prostu przekonwertować wszystkie karty.
Zrobiłem trochę badań.
Konfiguracja
core.whitespace
nie ma nic wspólnego z wyświetlaniem zakładek. Służy tylko gitowi do rozpoznawania błędów związanych z białymi znakami tabulacji. Na przykład: gdyindent-with-non-tab
jest włączony icore.whitespace
jest ustawiony natabwidth=4
, a linia jest wcięta za pomocą 4 spacji lub więcej, wtedy git zgłosi błąd.W przypadku git, oprócz funkcji wykrywania błędów związanych z białymi znakami tabulacji, tabulator jest znakiem jak każdy inny znak. Jest porównywany i zrzucany do dowolnego narzędzia używanego do wyświetlania znaków. Oznacza to, że aby skonfigurować wyświetlaną szerokość tabulatora, musisz skonfigurować „interfejsy” git. W takim przypadku
git diff
byłoby „mniej” (narzędzie uniksowe „mniej”). W takim przypadkugit gui
byłoby to samo git-gui.Konfiguracja mniej jest łatwa. Możesz ustawić konfigurację git tak,
core.pager
aby mniej konfigurowała wyświetlanie tabulacji za pomocą 4 spacji (less ma parametr-xn
do ustawienia szerokości tabulatoran
).Konfiguracja git-gui okazała się znacznie trudniejsza. Git-gui jest napisane w Tcl / Tk. Znalazłem opcję Tcl / Tk , aby skonfigurować szerokość tabulatora w widżetach tekstowych. Znalazłem również wiersz, w
git-gui.sh
którym wygląda na to, że widget tekstowy jest inicjowany.To jest linia 3346 pliku
git-gui.sh
w wersji git 1.7.5:Zmieniłem to, zgodnie z instrukcją Tcl / Tk, na:
To nie wydawało się mieć żadnego efektu. Próbowałem różnych wartości dla
-tabs
i miały one pewien wpływ na wyświetlaną szerokość tabulacji, więc wydaje się, że poprawną linię należy zmodyfikować.Niestety, Tcl / Tk nie wydaje się mieć pojęcia szerokości tabulatora pod względem znaków, zamiast tego szerokość tabulatora musi być ustawiona w pikselach lub centymetrach.
Zauważ, że nie mam żadnego doświadczenia w Tcl / TK, więc może po prostu przeoczę coś prostego.
W każdym razie teraz już wiesz, od czego zacząć kopanie. Pamiętaj, aby zgłosić się tutaj, jeśli masz działające rozwiązanie. Powodzenia.
źródło
Opracowałem badania wykonane przez lesmana .
Linia
wspomniane przez lesmana należy zastąpić następującym:
Po wykonaniu tej czynności można dostroić rozmiar tabulatora za pomocą opcji „tabsize” w sekcji [gui] pliku konfiguracyjnego git (aka gui.tabsize). Złe wieści:
Testowane z:
źródło