即使我已经完成所有设置,Sublime 仍然对某些文件使用 4-space 选项卡而不是 2-space 选项卡,为什么以及如何修复?

Sublime keeps using 4-space tab for some files instead of 2-space tab even if I've done all the settings, why and how do I fix?

我正在我的 iMac 上使用 Sublime 3.2.2 编辑文件。

我已经将制表符大小设置为 2:

它适用于某些文件但不适用于某些文件 - 剩余的 4 大小的标签。我什至不知道哪个是对的,哪个是错的。

除了设置之外,还有其他需要检查的地方吗?

这里有两点需要考虑。首先,此设置(此处显示为默认值):

    // Set to false to disable detection of tabs vs. spaces on load
    "detect_indentation": true,

启用此设置后,将在打开文件时对其进行检查以尝试检测其缩进方式。这将使用检测到的制表符大小覆盖该特定文件中的 tab_size,如果文件以特定方式缩进,也可以覆盖 translate_taba_to_spaces

默认设置是这样的,这样您就可以使用您的设置来确定您希望如何创建新文件,同时仍然允许您以合理的方式处理现有文件;将其设置为 false 将关闭此检测。

第二点要注意的是,首选项可以按文件类型设置,这也会覆盖用户首选项中对该类型文件的设置。

例如,YAML 个文件应用了这些设置(来自 YAML/YAML.sublime-settings):

{
    // YAML mandates that tabs aren't used for indentation
    "translate_tabs_to_spaces": true,

    // In practice, editing YAML files with anything other than two space
    // indentation is tedious, due to the "- " list prefix
    "tab_size": 2,
}

因此,在 YAML 文件中,无论您的设置如何,制表符大小默认为 2,并且强制在制表符上方使用空格。

因此,这里的要点是,如果更改上述检测设置不起作用,请检查该设置是否仅在特定类型的文件中似乎“不起作用”,如果是这样,您可以使用 Preferences > Settings - Syntax Specific 当您打开该类型的文件以强制执行您的设置时。