Я провів деякі дослідження.
Конфігурація не core.whitespace
має нічого спільного з тим, як відображаються вкладки. Він використовується лише для git для розпізнавання помилок пробілів, пов’язаних з вкладками. Наприклад: коли indent-with-non-tab
ввімкнено та core.whitespace
встановлено значення tabwidth=4
, а рядок буде відступ з використанням 4 пробілів або більше, то git повідомить про помилку.
Для git, крім функцій виявлення помилок пробілів, пов'язаних з вкладками, символ вкладки - це символ, як і будь-який інший символ. Його порівнюють, і він потрапляє на будь-який інструмент, який використовується для відображення символів. Це означає, що для налаштування відображеної ширини вкладок вам потрібно налаштувати "передні кінці" git. У випадку git diff
цього було б "менше" (інструмент unix "менше"). У випадку git gui
цього буде саме git-gui.
Налаштувати менше легко. Ви можете встановити конфігурацію git таким чином, core.pager
щоб менше відображати вкладку, використовуючи 4 пробіли (менше має параметр -xn
для встановлення ширини табуляції на n
).
Налаштувати git-gui виявилося значно важче. Git-gui написаний Tcl / Tk. Я знайшов варіант Tcl / Tk, щоб налаштувати ширину вкладок у текстових віджетах. Я також знайшов рядок, git-gui.sh
де виглядає, як текстовий віджет ініціалізується.
Це рядок 3346 файлу git-gui.sh
в git версії 1.7.5:
catch {$ui_diff configure -tabstyle wordprocessor}
Я змінив це, відповідно до посібника з Tcl / Tk, на:
catch {$ui_diff configure -tabs "[expr {4 * [font measure $font 0]}]" -tabstyle wordprocessor}
Це, мабуть, не мало ніякого ефекту. Я спробував різні значення для, -tabs
і вони мали деякий вплив на відображену ширину вкладок, тому, здається, правильний рядок для зміни.
На жаль, Tcl / Tk, схоже, не має поняття ширини вкладок у вигляді символів, натомість ширина вкладки повинна бути встановлена в пікселях чи сантиметрах.
Зауважте, що у мене немає досвіду роботи з Tcl / TK, тому, можливо, я просто пропускаю тут щось просте.
У всякому разі, тепер ви знаєте, з чого почати копати. Не забудьте повідомити про це, якщо у вас є робоче рішення. Удачі.