“恢复默认缩进”需关闭detect_indentation并清空语法专属设置,因缩进由文件内、语法、项目、全局四层叠加决定,仅删用户设置无效;真正默认取决于语言包内置值(如Python为Tabs: 2),且仅影响新输入,旧文件缩进不变。

为什么“恢复默认缩进”不能只删用户设置文件
删掉Preferences.sublime-settings里的缩进相关字段(比如tab_size或translate_tabs_to_spaces)根本没用——Sublime 的缩进行为由四层配置叠加决定:文件内设置 > 语法专属设置 > 项目设置 > 全局用户设置。你删的只是最底层,上层(尤其是 Python、JavaScript 等语言包自带的Python.sublime-settings)依然生效,右下角照样显示Tabs: 2或Spaces: 4,和你“以为的默认”完全不是一回事。
真正有效的重置路径:关 detect_indentation + 清语法专属配置
所谓“默认缩进”,其实是 Sublime 启动时找不到任何自定义规则时,按内置逻辑 fallback 的行为:对 Plain Text 是tab_size: 4且translate_tabs_to_spaces: false(即插\t),但对 Python 等语言,它直接读语言包里硬编码的值(通常是tab_size: 2和translate_tabs_to_spaces: false)。要回到这个状态,必须:
- 在
Preferences → Settings – User中显式添加:"detect_indentation": false(否则它一打开文件就覆盖你所有设置) - 逐个清空语法专属配置:打开
.py文件 →Preferences → Settings – Syntax Specific→ 把整个右侧面板内容清空并保存;对.js、.json等同理 - 检查项目根目录有没有
.editorconfig,有就临时重命名,否则 EditorConfig 插件会劫持缩进逻辑
重置后验证:状态栏和空白符可视化是唯一可信依据
改完别信“看起来像默认了”。必须做两件事:
- 打开一个新
.py文件,看右下角是否显示Tabs: 2(不是Spaces: 2)——这才是 Python 语言包的原始默认 - 在
Settings – User中加一行:"draw_white_space": "all",然后按一次 Tab 键:如果出现→(箭头),说明插的是\t;如果出现两个·(点),才是空格。只有看到→,才确认回到了“真正默认”
旧文件缩进不会变,这不是 bug 是设计
所有重置操作只影响“新输入”和“新创建文件”的行为。已存在的\t或空格一个字节都不会动——Sublime 从不自动修改已有内容。如果你打开一个混着\t和空格的老 Python 文件,它仍会显示Detect Indentation,哪怕你已关掉detect_indentation。这时候右下角的状态栏提示才是唯一线索:它告诉你当前视图实际生效的缩进模式,而不是你“想让它是什么”。


















