在 sublime text 中永久设置 tab 为 4 个空格需修改用户配置:preferences → settings,在右侧 user 配置中添加 {"tab_size": 4, "translate_tabs_to_spaces": true};注意语言专属设置(如 python.sublime-settings)和 .editorconfig 会覆盖该配置,需一并检查调整。

如何在 Sublime Text 中永久设置 Tab 为 4 个空格
直接改配置就能生效,不用装插件或写脚本。关键在于区分「当前文件临时设置」和「全局默认设置」,很多人只调了前者,关掉文件就失效。
- 打开当前文件后,点击右下角的
Tab Width: 4或Indentation: Tab,选Convert Indentation to Spaces—— 这只是临时转换当前文件缩进,不改默认行为 - 真正起作用的是修改用户配置:菜单栏
Preferences → Settings,在右侧用户配置(User)里加这两行:
{
"tab_size": 4,
"translate_tabs_to_spaces": true
}
- 保存后,所有新打开的文件(包括新建的)都会默认用 4 空格缩进;已打开的文件不会自动重排,需手动触发
Convert Indentation to Spaces - 如果项目有
.editorconfig,Sublime 默认不读它——得装EditorConfig for Sublime Text插件,否则配置会被覆盖
为什么改了设置但 Python 文件还是用 Tab?
因为 Sublime 会按文件类型加载专属语法设置,Python 的默认缩进行为可能被 Python.sublime-settings 覆盖。
- 检查是否启用了语言专属设置:菜单
Preferences → Package Settings → Python → Settings - 如果该文件里有
"translate_tabs_to_spaces"或"tab_size",优先级高于全局配置,必须删掉或同步改成true和4 - 常见坑:有人复制了别人 GitHub 上的 Python 配置,里面写了
"translate_tabs_to_spaces": false,结果全局设置完全无效
缩进混乱时怎么批量修复已有文件?
不能只靠 Ctrl+A + 缩进命令,容易误伤字符串里的制表符或注释对齐。
- 先确保当前文件缩进模式正确:右下角确认显示
Spaces: 4,不是Tab - 菜单执行
Convert Indentation → To Spaces,再执行一次Indentation → Convert Line Endings → Unix(避免 Windows 换行干扰) - 批量处理多个文件:用侧边栏多选文件 → 右键 →
Convert Indentation to Spaces,但注意——这个操作不支持递归子目录,要处理整个项目得用命令行配合find+sed或autopep8
和 PEP 8、Black 等工具共存要注意什么
Sublime 自己不校验代码风格,只是“画布”,真正决定格式的是你用的格式化工具。
- 如果装了
Black或autopep8插件,它们会在保存时重写缩进,此时 Sublime 的tab_size设置仅影响光标移动和新输入,不影响最终结果 - 推荐做法:Sublime 设为
"tab_size": 4+"translate_tabs_to_spaces": true,再让 Black 接管格式化——两者目标一致,不会冲突 - 唯一容易出问题的是团队协作:有人用 Sublime 未启用
translate_tabs_to_spaces,手敲 Tab,Git 提交后 Black 一跑,整块缩进被重排,diff 巨大
最麻烦的其实是混合缩进的旧项目,Sublime 不会主动报错,得靠 linter 或 pre-commit 拦住。一旦文件里同时存在 Tab 和空格,tab_size 设置再准也没用。










