職場では、何人かの開発者がいて、コードスタイルガイドがありません。タブでインデントする開発者もいれば、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設定が必要になると思います。しかし、一部の開発者はdiff
ではなくshow
を使用するため、gitがzsh
/bash
に4つのスペースとしてタブを出力するオプションがあるかどうか知りたい] _。
何か案は?
答えとして https://stackoverflow.com/a/10584237/185034 私の色設定が原因で私にはうまくいきませんでした。
TAB=$'\t' && git config --global core.pager "sed 's/$TAB/ /g' | less" && unset TAB
これは、すべてのタブ文字を4つのスペースで置き換えてから、それをlessで表示します。 (シェルのバックスラッシュエスケープを回避するには、TABの回避策が必要です)