git diff以不同方式显示相同长度的制表符和空格

时间:2017-03-22 18:17:19

标签: git vim

注意到一些奇怪的事情:

使用vim,我将一行代码上的缩进从3个制表符替换为24个空格。在vim中,代码与上面的行对齐,它仍然有3个制表符。

但是在' git diff'控制台输出,我看到类似的东西(忽略这里的实际宽度):

-          if (...)
+           if (...)

这是一个小问题,但有点好奇......所以我选择了集体的SO大脑。

谢谢!

1 个答案:

答案 0 :(得分:2)

这就是标签的工作方式。它们转到下一个tabstop,这意味着默认设置中的下一个8列。

如果您的行以8个空格开头,则下一个字符将位于第9列。如果它以制表符开头,则下一个字符将位于第9列。

如果它以+和8个空格开头,则下一个字符位于第10列,因为8个空格仍占用8个空格。

如果它以-和标签开头,则下一个字符位于第9列,因为该标签仅占用“但是在下一个8的倍数之前剩余的空间”。

标签很糟糕。