Sublime Text 缩进设置被文件覆盖

Sublime Text Indentation Settings Being Overwritten By a File

我正在处理一个项目,其中制表符大小应该是 4,制表符不应该是空格。我更新了我的 Preferences.sublime-settings 文件以包含

"detect_indentation": "false",
"tab_size": 4,
"translate_tabs_to_spaces": false,

当我打开一个新文件时,这些设置被设置为我想要的方式并且一切正常。但是,如果我打开一个缩进为 2 个空格的现有文件(scss 或 html),我的 Sublime 设置将被覆盖并且缩进更改为 2 个空格。如果我单击“查看”>“缩进”,我会看到“制表符大小”设置为 2 并且“使用空格缩进”已启用,即使我的偏好应该与此相反。

如果我通过“视图”>“缩进”手动将“缩进”更改为“制表符宽度:4”并取消选择“使用空格缩进”,这将一直有效,直到我保存文件,此时设置恢复为“制表符宽度 2”并启用“使用空格缩进”。

如何强制 Sublime Text 遵循我的缩进首选项而不被其他文件覆盖。我假设 Sublime 正在检测页面上的缩进,但我已经关闭了该设置。

这是我的首选项文件,显示一切正常:

这是 scss 文件的混乱设置。我所做的只是打开它:

我认为这不是任何插件造成的,我禁用了大部分插件,但仍然遇到这个问题。但是,作为参考,这里是我安装的所有软件包的列表:

在此先感谢您的帮助。

加载文件时,会检查其内容,并为该文件设置 "tab_size" 和 "translate_tabs_to_spaces" 设置。发生这种情况时,状态区域将报告。虽然这通常效果很好,但您可能希望禁用它。您可以使用 "detect_indentation" 设置来做到这一点。

这可能会有帮助:https://www.sublimetext.com/docs/2/indentation.html

所以我通过完全卸载 Sublime Text 和所有相关的包和设置,然后重新安装应用程序并一个接一个地重新安装我的包来解决这个问题。事实证明,我的一个包 EditorConfig 正在覆盖我的 Sublime Text 样式设置。

EditorConfig 实际上是一个非常酷的插件,它允许多个开发人员在多个 IDE 上从事同一个项目,通过定义缩进类型、大小、字符集和其他设置来获得一致的风格。

我的问题的答案是,在我正在处理的特定项目目录中,我下载的一些节点模块有 .editorconfig 文件,这些文件的缩进设置为大小 2,空格而不是制表符。我不得不从我的 Sublime Text 中卸载 EditorConfig 包,或者在我的项目的根目录中创建一个新的 .editorConfig 文件。这是我创建的 .editorConfig 文件,它解决了我的问题。

# top-most EditorConfig file
root = true

# 4 Tab Indentation
indent_style = tab
indent_size = 4