要使Tab键插入4个空格,需同时设置"tab_size": 4和"translate_tabs_to_spaces": true;仅改其一无效;已有文件需手动执行Convert Indentation to Spaces转换。

Sublime Text 默认的 Tab 缩进行为不是固定为 4 个空格,而是由 tab_size 和 translate_tabs_to_spaces 两个设置共同控制;只改其中一个,缩进可能依然不生效或表现异常。
如何让 Tab 键插入 4 个空格(而非制表符)
关键在于同时启用空格替换 + 设置空格数量。仅修改 tab_size 不会改变 Tab 键行为——它只影响显示宽度或已存在的制表符渲染。
-
translate_tabs_to_spaces必须设为true,否则按 Tab 键仍插入\t -
tab_size设为4,表示每次插入/显示等效于 4 个空格宽度 - 这两个设置需写入用户配置(
Preferences → Settings – User),避免被默认配置覆盖
{
"tab_size": 4,
"translate_tabs_to_spaces": true
}
已有文件缩进混乱?用命令批量转空格
打开一个已用 Tab 缩进的文件后,即使设置了 translate_tabs_to_spaces,旧的 \t 不会自动变成空格。需要手动触发转换。
- 菜单栏选择
View → Indentation → Convert Indentation to Spaces - 或快捷键:
Ctrl+Shift+P(Windows/Linux)/Cmd+Shift+P(macOS),输入Convert Indentation to Spaces回车 - 注意:该操作不可撤销,建议先保存或备份
不同语言单独设置缩进(比如 Python 用 4,JSON 用 2)
全局设置对所有文件生效,但某些语言(如 Python、JS、JSON)有更严格的缩进规范,可通过语法专属设置覆盖。
- 打开一个目标类型文件(如
example.py) - 菜单栏
Preferences → Settings – Syntax Specific - 填入对应配置,例如 Python 文件专用:
{
"tab_size": 4,
"translate_tabs_to_spaces": true
}
此时该文件类型会忽略全局设置,优先使用此配置。文件类型名(如 Python)会自动写入配置顶部注释,无需手动指定。
容易忽略的是:修改设置后不会实时影响已打开的文件缩进显示——要重新加载或切换缩进方式(View → Indentation → Indentation → Detect Indentation 可能重置为文件原有格式)。真正生效的节点是「下次新建文件」或「执行 Convert 命令后」。










