Подтвердить что ты не робот

Установка ширины табуляции до 4 в git show/git diff

На работе у нас есть несколько разработчиков и у нас нет руководства по стилю кода, а некоторые отступы разработчиков с вкладками и некоторые другие с 4 пробелами (к счастью, никто из отступов с пробелами не использует 4 пробела). В общем, это не проблема (большая), потому что в наших редакторах мы устанавливаем tabwidth=4, и все отступы кажутся правильными.

Но в git diff или git show то, что появляется:

diff --git a/mesclatabs.php b/mesclatabs.php
new file mode 100644
index 0000000..1986c91
--- /dev/null
+++ b/mesclatabs.php
@@ -0,0 +1,5 @@
+<?php
+function foo() {
+       echo "line with 1 tab\n";
+    echo "line with 4 spaces\n";
+}

Проблема заключается в git diff или git show, где каждая вкладка имеет ширину 8 пробелов (ну, на самом деле, она отображается как вкладка, а оболочка (bash в моем случае) показывает вкладку как 8 пробелов Я предполагаю, что для изменения этого параметра должен быть какой-то bash config, но я хотел бы знать, имеет ли возможность git выводить вкладки в виде 4 пробелов в diff/show, поскольку некоторые разработчики работают с zsh вместо bash.

Любые идеи?

4b9b3361

Ответ 1

Я верю git config --global core.pager 'less -x1,5'

Ссылка: git -scm chp7-1

Ответ 2

Поскольку ответ fooobar.com/info/108250/... не работал у меня из-за моих настроек цвета, я придумал следующее решение:

TAB=$'\t' && git config --global core.pager "sed 's/$TAB/    /g' | less" && unset TAB

Это заменяет все символы табуляции на 4 пробела, прежде чем отображать их с меньшим количеством. (Обходной путь TAB необходим, чтобы обойти обратную косую черту оболочки)