Eu fiz algumas pesquisas.
A configuração core.whitespace
não tem nada a ver com a maneira como as guias são exibidas. É usado apenas para o git reconhecer erros de espaço em branco relacionados a guias. Por exemplo: quando indent-with-non-tab
está ativado e core.whitespace
está definido como tabwidth=4
e uma linha é recuada usando 4 espaços ou mais, o git relatará um erro.
Para o git, além dos recursos de detecção de erro de espaço em branco relacionados à guia, um caractere de tabulação é um caractere como qualquer outro caractere. Ele é comparado e despejado em qualquer ferramenta usada para exibir os caracteres. Isso significa que, para configurar a largura da guia exibida, é necessário configurar os "front ends" do git. No caso git diff
disso, seria "less" (a ferramenta unix "less"). Nesse caso, git gui
seria o próprio git-gui.
Configurar menos é fácil. Você pode definir a configuração do git core.pager
para definir menos para exibir uma guia usando 4 espaços (menos tem um parâmetro -xn
para definir a largura da guia n
).
Configurar o git-gui acabou sendo consideravelmente mais difícil. Git-gui está escrito em Tcl / Tk. Encontrei uma opção Tcl / Tk para configurar a largura da guia nos widgets de texto. Também encontrei uma linha na git-gui.sh
qual parece que o widget de texto está sendo inicializado.
Esta é a linha 3346 do arquivo git-gui.sh
na versão 1.7.5 do git:
catch {$ui_diff configure -tabstyle wordprocessor}
Alterei isso, de acordo com o manual Tcl / Tk, para:
catch {$ui_diff configure -tabs "[expr {4 * [font measure $font 0]}]" -tabstyle wordprocessor}
Isso não pareceu ter nenhum efeito. Tentei valores diferentes -tabs
e eles tiveram algum efeito na largura da guia exibida, por isso parece ser a linha correta a ser modificada.
Infelizmente, Tcl / Tk não parece ter uma noção da largura da guia em termos de caracteres; em vez disso, a largura da guia deve ser definida em pixels ou centímetros.
Observe que eu não tenho nenhuma experiência em Tcl / TK, então talvez eu esteja apenas negligenciando algo simples aqui.
De qualquer forma, agora você sabe por onde começar a cavar. Lembre-se de relatar aqui se você tiver uma solução funcional. Boa sorte.