为什么gitlab显示的tab比sublime编辑器多?

Why does gitlab show more tabs than the one in the sublime editor?

我用 tab width:4 在 sublime 中编写代码。当我将我的代码推送到 gitlab 时,它会在缩进中显示另外 1 个选项卡。这里出了什么问题?我应该如何设置我的 sublime 来防止这种情况?

您在这里遇到的根本问题是您使用的是物理 tab 字符而不是 space 用于缩进。 space 字符具有非常明确的宽度(一个字符),而 tab 字符没有固有宽度。它是一个字符,意思是“在此处插入一个缩进级别”。

缩进显示的大小完全由显示文本的内容控制。以这种方式使用物理 tab 的一般想法是每个人都可以将 tab 的显示大小设置为他们喜欢的任何大小,因此文件的文本不会改变,但它的显示确实如此。相比之下,使用 spaces 进行缩进会导致物理文件对于查看它的每个人来说看起来都一样,无论他们的设置如何。

虽然您在 Sublime 中将 tab_size 设置为 4,但这对 GitLab(或您的文件的任何其他编辑器或显示机制)没有影响,因为所有文件包含一个 tab 没有定义宽度的字符。碰巧 GitLab 的默认制表符大小为 8 个字符而不是 4 个。

因此,看起来好像到处都有一个额外的标签,但实际上,如果您使用鼠标 select 您的文本,一次一个字符,您会看到 tab实际上是 8 个字符宽。

对于 GitLab,有一个设置可以控制它:

  1. 点击右上角你的头像,然后selectSettings
  2. 在设置页面左侧的菜单中,select Preferences
  3. 在标记为行为的部分中,有一个 Tab Size 的设置;将其设置为您想要的制表符宽度,然后单击 window.
  4. 底部的 Save Changes

此特定设置目前针对每个用户而非每个项目,因此您在此处设置的内容适用于 GitLab 中的所有内容。

GitHub 也有一个默认的 tab 宽度为 8;但是,您可以将 ?ts=4 附加到显示文件的 URL 以动态更改制表符大小。