Investigué un poco.
La configuración core.whitespace
no tiene nada que ver con cómo se muestran las pestañas. Solo se usa para que git reconozca los errores de espacio en blanco relacionados con las pestañas. Por ejemplo: cuando indent-with-non-tab
está habilitado, y core.whitespace
se establece en tabwidth=4
, y una línea está sangrada usando 4 espacios o más, entonces git informará un error.
Para git, aparte de las funciones de detección de errores de espacio en blanco relacionadas con la pestaña, un carácter de pestaña es un personaje como cualquier otro personaje. Se compara y se descarga a cualquier herramienta que se use para mostrar los caracteres. Eso significa que, para configurar el ancho de la pestaña que se muestra, debe configurar los "extremos frontales" de git. En ese caso git diff
, sería "menos" (la herramienta de Unix "menos"). En ese caso git gui
, sería git-gui.
Configurar menos es fácil. Puede establecer la configuración de git core.pager
para configurar menos para mostrar una pestaña con 4 espacios (menos tiene un parámetro -xn
para establecer el ancho de pestaña n
).
Configurar git-gui resultó ser considerablemente más difícil. Git-gui está escrito en Tcl / Tk. Encontré una opción Tcl / Tk para configurar el ancho de la pestaña en widgets de texto. También encontré una línea en la git-gui.sh
que parece que el widget de texto se está inicializando.
Esta es la línea 3346 del archivo git-gui.sh
en git versión 1.7.5:
catch {$ui_diff configure -tabstyle wordprocessor}
Cambié eso, de acuerdo con el manual Tcl / Tk, a:
catch {$ui_diff configure -tabs "[expr {4 * [font measure $font 0]}]" -tabstyle wordprocessor}
Eso no pareció tener ningún efecto. Intenté diferentes valores para -tabs
y tuvieron algún efecto en el ancho de la pestaña mostrada, por lo que parece ser la línea correcta para modificar.
Desafortunadamente, Tcl / Tk no parece tener una noción de ancho de tabulación en términos de caracteres, sino que el ancho de tabulación debe establecerse en píxeles o centímetros.
Tenga en cuenta que no tengo experiencia en Tcl / TK en absoluto, por lo que tal vez solo estoy pasando por alto algo simple aquí.
De todos modos, ahora sabes por dónde empezar a cavar. Recuerde informar aquí si tiene una solución que funcione. Buena suerte.