必须同时设置"tab_size":4和"translate_tabs_to_spaces":true,缺一则tab键仍插入\t;还需关闭"detect_indentation":false并为python等语法单独配置syntax specific设置,否则会被语言包或自动检测覆盖。

必须同时设置 tab_size 为 4 且 translate_tabs_to_spaces 为 true,否则按 Tab 键永远插不出 4 个空格——只改其中一个,等于没改。
为什么改了 tab_size 还是插入 \t?
tab_size 本身不控制按键行为,它只决定制表符显示宽度、自动缩进量、以及“转换缩进”时的换算比例。真正让 Tab 键输出空格的是 translate_tabs_to_spaces。
-
translate_tabs_to_spaces: true→ 按 Tab 插入tab_size个空格 -
translate_tabs_to_spaces: false(默认值之一)→ 按 Tab 插入单个\t,哪怕tab_size是 100 也无效 - 两个配置必须写在同一级 JSON 中,且都在用户设置或语法专属设置里,缺一不可
为什么新建 Python 文件还是用 Tab 或 2 空格?
Sublime 的语法专属设置(如 Python.sublime-settings)优先级高于全局用户设置。很多语言包自带缩进规则,会直接覆盖你设的 tab_size 和 translate_tabs_to_spaces。
一款AI数据处理工具,主要用于用于查询 Massive 市场数据端点的 Bash CLI 封装和 OpenClaw 技能,适用于 Codex 或 OpenClaw 代理从 shell 调用,适合需要提升相关任务效率的用户。
- 检查
Preferences → Package Settings → Python → Settings,删掉或同步改成"tab_size": 4和"translate_tabs_to_spaces": true - 同理,对
JavaScript、JSON、HTML等常用语法,也需进Preferences → Settings – Syntax Specific单独确认 - 如果项目根目录有
.editorconfig,Sublime 默认不读——得装EditorConfig for Sublime Text插件,否则配置会被静默覆盖
为什么刚打开文件时缩进又变回去了?
因为 detect_indentation 默认为 true,Sublime 会在加载文件时扫描前几行,自动推断并覆盖你的全部缩进设置。这不是 bug,是设计行为。
- 状态栏右下角显示
Tab Width: 2或Tab,说明检测已生效,当前视图设置已被临时覆盖 - 在用户设置中加
"detect_indentation": false才能锁死你的配置 - 该设置只在文件打开时触发,改完需重新打开已有文件才能看到效果
- 已有文件里的
\t不会自动转成空格——需手动执行Convert Indentation to Spaces(快捷键Ctrl+Shift+P输入后回车)
最易被忽略的是:语法专属设置和 detect_indentation 的双重覆盖机制。很多人只动了全局配置,结果在 .py 文件里反复失效,其实问题不在 tab_size 值,而在谁说了算。










