Cambia tabsize in git-gui


15

Mi chiedevo se fosse possibile cambiare il tabsize in git-gui da 8 caratteri a 4. L'unica cosa che ho trovato è stata, core.whitespace = tabsize=4ma questo influenza solo diff.

Il motivo per cui lo sto chiedendo è perché sto lentamente eliminando l'uso delle schede e invece uso il rientro a 4 spazi. Questo, tuttavia, può dare risultati confusi quando si guarda il diff in git-gui, poiché il tabsize è di circa 8 caratteri.

So che un semplice :retabin Vim risolve il mio problema, ma abbastanza spesso devo lavorare su file di grandi dimensioni con una storia a lungo termine che può avere modifiche in rami separati. Quindi non posso sempre semplicemente convertire tutte le schede.

Risposte:


5

A partire da git-gui-0.20 e git 2.4.0 ( commit ) esiste un parametro di configurazione che è stato aggiunto per configurare il tabsize visualizzato in git gui.

Aggiungi questo al tuo ~ / .gitconfig

[gui]
    tabsize = 4

o cambiarlo tramite il menu di configurazione di git-gui (Modifica -> Opzioni ...)


Grazie. Ho aggiornato il mio Git (era a 1.8: -O) e vedo questa opzione. Devo ancora fare i conti con una combinazione di schede e spazi ogni tanto, quindi è fantastico.
Htbaa,

10

Ho fatto delle ricerche.

La configurazione core.whitespacenon 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=4e 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 diffsarebbe "meno" (lo strumento unix "meno"). In questo caso git guisarebbe git-gui stesso.

Configurare meno è facile. Puoi impostare la configurazione di git in modo core.pagerda impostare meno per visualizzare una scheda usando 4 spazi (less ha un parametro -xnsu 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.shcui sembra che il widget di testo sia stato inizializzato.

Questa è la riga 3346 del file git-gui.shnella 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 -tabse 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.


Grazie per la tua ricerca. Dovrò riservare del tempo per provare. La generosità è tua come meritata. Quando e se capirò come farlo, tornerò sicuramente qui.
Htbaa,

@Htbaa: Penso che devi fare clic sul pulsante "premi generosità" per assegnare la ricompensa. Accettare la risposta non conferisce la generosità.
lesmana,

Grazie. Fatto! Ero abbastanza sicuro che la taglia fosse stata data.
Htbaa,

5

Ho elaborato ricerche fatte da Lesmana .

La linea

catch {$ui_diff configure -tabstyle wordprocessor}`

menzionato da lesmana dovrebbe essere sostituito dal seguente:

catch {$ui_diff configure -tabs "[expr {[get_config gui.tabsize] * [font measure font_diff 0]}] left" -tabstyle wordprocessor}

Dopo aver fatto ciò, è possibile ottimizzare le dimensioni della scheda usando l'opzione "tabsize" nella sezione [gui] del file di configurazione di git (aka gui.tabsize). Cattive notizie:

  1. Alcune schede dopo l'ultimo carattere non bianco si trasformano in spazi semplici. Sembra un bug in tcl.
  2. Uno deve riavviare git-gui dopo aver cambiato la dimensione del carattere per ottenere le schede corrette. Chi sa come risolverlo?

Testato con:

  • versione git-gui 0.13.0.8.g8f85
  • versione git 1.7.4.1
  • tcl versione 8.4.16-2 (pacchetto Ubuntu 11.04 i386)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.