首页 > 解决方案 > 即使我已经完成了所有设置,Sublime 仍然对某些文件使用 4-space tab 而不是 2-space tab,为什么以及如何修复?

问题描述

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

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

在此处输入图像描述

它适用于某些文件,但不适用于某些文件 - 剩余 4 个大小的选项卡。我什至找不到关于哪个是对的哪个不是的线索。

除了设置,我还需要检查其他地方吗?

标签: sublimetext3

解决方案


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

    // 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在有该类型的文件打开以在那里强制执行您的设置。


推荐阅读