Мне было интересно, можно ли изменить размер табуляции в git-gui с 8 символов до 4. Единственное, что я обнаружил, это core.whitespace = tabsize=4
то, что это влияет только на diff.
Причина, по которой я спрашиваю, заключается в том, что я постепенно прекращаю использование вкладок и вместо этого использую отступ в 4 пробела. Это, однако, может дать непонятные результаты при просмотре различий в git-gui, так как размер табуляции составляет около 8 символов.
Я знаю, что простое :retab
в Vim решает мою проблему, но довольно часто мне приходится работать с большими файлами с длительной историей, которые могут иметь модификации в отдельных ветках. Поэтому я не всегда могу просто конвертировать все вкладки.
Я провел некоторое исследование.
Конфигурация не
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
для настройки less для отображения вкладки, используя 4 пробела (less имеет параметр-xn
для установки tabwidthn
).Конфигурирование git-gui оказалось значительно сложнее. Git-gui написан на Tcl / Tk. Я нашел опцию Tcl / Tk для настройки ширины вкладки в текстовых виджетах. Я также нашел строку, в
git-gui.sh
которой, похоже, инициализируется текстовый виджет.Это строка 3346 файла
git-gui.sh
в git версии 1.7.5:Я изменил это в соответствии с руководством Tcl / Tk, чтобы:
Это, казалось, не имело никакого эффекта. Я пробовал разные значения для,
-tabs
и они оказали некоторое влияние на ширину отображаемой вкладки, поэтому, похоже, это правильная строка для изменения.К сожалению, Tcl / Tk, похоже, не имеет понятия ширины табуляции в терминах символов, вместо этого ширина табуляции должна быть задана в пикселях или сантиметрах.
Обратите внимание, что у меня нет никакого опыта в Tcl / TK, поэтому, возможно, я просто пропускаю что-то простое здесь.
Во всяком случае, теперь вы знаете, с чего начать копать. Не забудьте сообщить здесь, если у вас есть рабочее решение. Удачи.
источник
Я разработал исследование, сделанное Лесманой .
Линия
упомянутое лесману следует заменить следующим:
После этого можно настроить размер вкладки, используя опцию «tabsize» в разделе [gui] файла конфигурации git (он же gui.tabsize). Плохие новости:
Протестировано с:
источник