gpt4 book ai didi

git - 为什么 `git show`缩进不一致?

转载 作者:太空狗 更新时间:2023-10-29 14:12:00 25 4
gpt4 key购买 nike

当我执行 git show 时,我发现缩进不一致。该文件混合使用了“8 个空格”制表符和空格,我运行了 git config core.pager 'less -x8'。源文件按预期出现,git show 的大部分输出都符合我的预期,但是这个:

+convert_size_by_transform_scale(int32_t *width_out, int32_t *height_out,
+ int32_t width, int32_t height,
+ uint32_t transform,
+ int32_t scale)

上面的第 2-4 行应该多缩进一个空格。源文件本身显示为:

convert_size_by_transform_scale(int32_t *width_out, int32_t *height_out,
int32_t width, int32_t height,
uint32_t transform,
int32_t scale)

而且,git show 输出中的其他行也正确缩进了。在文件上运行 less 也会显示正确的缩进。那么,那几行缩进错误的行是怎么回事?

最佳答案

制表符将光标前进到下一个制表位。在您的情况下,您的缩进线恰好位于 32 列(或 4 个制表符)处。无论我们是否将 + 放在第 1 列中,这都是正确的。

换句话说,渲染是这样的:

  • 第 1 列 TAB:移至第 9 列
  • 第 9 列 TAB:移至第 17 列
  • 第 17 列 TAB:移至第 25 列
  • 第 25 列 TAB:移至第 33 列
  • (打印该行的其余部分...)

在以 + 为前缀的行中,它执行以下操作:

  • 第 1 列 +:打印一个 +
  • 第 2 列 TAB:移至第 9 列
  • 第 9 列 TAB:移至第 17 列
  • 第 17 列 TAB:移至第 25 列
  • 第 25 列 TAB:移至第 33 列
  • (打印该行的其余部分...)

当然,第一行不包含制表符。所以当我们在第 1 列添加一个 + 时,所有内容都向右移动了一个位置。由于缩进行不是这样,因此它们不再与第一行一致。

正是前导 + 字符的存在导致了这样的变化。这就是为什么 less 没有显示这个 - 它没有给你一个差异,所以 + 不存在。

除了使用空格而不是制表符之外,您无能为力。

关于git - 为什么 `git show`缩进不一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37095997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com