Ho fatto delle ricerche.
La configurazione core.whitespace
non ha nulla a che fare con la modalità di visualizzazione delle schede. Viene usato solo per git per riconoscere errori di spazi bianchi relativi alle schede. Ad esempio: quando indent-with-non-tab
è abilitato, core.whitespace
è impostato su tabwidth=4
e una linea è rientrata usando almeno 4 spazi, allora git segnalerà un errore.
Ad esempio, a parte le funzionalità di rilevamento degli errori degli spazi bianchi relativi alle schede, un carattere di scheda è un personaggio come qualsiasi altro personaggio. Viene confrontato e scaricato a qualsiasi strumento utilizzato per visualizzare i personaggi. Ciò significa che per configurare la larghezza della scheda visualizzata devi configurare i "front-end" di git. In questo caso git diff
sarebbe "meno" (lo strumento unix "meno"). In questo caso git gui
sarebbe git-gui stesso.
Configurare meno è facile. Puoi impostare la configurazione di git in modo core.pager
da impostare meno per visualizzare una scheda usando 4 spazi (less ha un parametro -xn
su cui impostare la larghezza di tabulazione n
).
Configurare git-gui si è rivelato molto più difficile. Git-gui è scritto in Tcl / Tk. Ho trovato un'opzione Tcl / Tk per configurare la larghezza della scheda nei widget di testo. Ho anche trovato una riga in git-gui.sh
cui sembra che il widget di testo sia stato inizializzato.
Questa è la riga 3346 del file git-gui.sh
nella versione 1.7.5 di git:
catch {$ui_diff configure -tabstyle wordprocessor}
Ho modificato questo, secondo il manuale di Tcl / Tk, in:
catch {$ui_diff configure -tabs "[expr {4 * [font measure $font 0]}]" -tabstyle wordprocessor}
Ciò non sembra avere alcun effetto. Ho provato valori diversi per -tabs
e hanno avuto qualche effetto sulla larghezza della scheda visualizzata, quindi sembra essere la linea corretta da modificare.
Sfortunatamente, Tcl / Tk non sembra avere una nozione di larghezza della scheda in termini di caratteri, invece, la larghezza della scheda deve essere impostata in pixel o centimetri.
Nota che non ho alcuna esperienza in Tcl / TK, quindi forse sto solo trascurando qualcosa di semplice qui.
Ad ogni modo, ora sai da dove iniziare a scavare. Ricorda di riportare qui se hai una soluzione funzionante. In bocca al lupo.