Sublime Text 默认缩进为4空格,但常被文件、项目或语言专属设置覆盖;需在对应语法专属设置中添加"tab_size": 4和"translate_tabs_to_spaces": true方可生效。

如何让 Sublime Text 默认用 4 个空格缩进
Sublime Text 默认缩进是 4 个空格,但常因文件类型、项目设置或手动触发而变成 2 或 tab —— 根本原因不是“没设”,而是设置被覆盖了。关键在优先级:文件内设置 > 项目设置 > 语言专属设置 > 全局默认设置。
-
先检查当前文件是否已手动改过缩进:底部状态栏点
Tab Width: 2或Indentation: Tab,点击后选Convert Indentation to Spaces,再点Indentation: 4 -
永久生效要改语言配置:菜单
Preferences → Settings – Syntax Specific,在里面加这两行:"tab_size": 4,<br>"translate_tabs_to_spaces": true
- 别动
Preferences → Settings(全局设置),它只影响纯文本或未识别类型的文件,对.py、.js等无效
为什么 .py 文件缩进还是变 2?
Python 语言包自带缩进规则,会强制覆盖全局设置。Sublime 默认加载的是 Python.sublime-settings,里面写了 "tab_size": 2。
- 打开
Preferences → Package Settings → Python → Settings – Syntax Specific - 粘贴:
"tab_size": 4,<br>"translate_tabs_to_spaces": true
- 保存后,新打开的
.py文件立即生效;已打开的需重新加载(Ctrl+Shift+P→Reload Syntax) - 注意:不要删掉原文件里的其他配置,只补这两项
缩进设置不生效的三个典型错误
常见现象是改完设置、重启软件、甚至重装插件,缩进还是不对 —— 大概率踩了下面这些坑。
-
indentation拼错成identation或indention,Sublime 完全忽略该行 - 在
Settings – User(全局)里写缩进配置,但当前文件类型有更高级的语法专属设置,直接被屏蔽 - 用了
Convert Indentation to Tabs后没再点Convert Indentation to Spaces,导致文件里混着 tab 和空格,tab_size设置完全不起作用
自动缩进和格式化时缩进失效怎么办
比如按 Ctrl+Shift+P 运行 Reindent,或用 Black、autopep8 插件格式化,结果缩进又回退到 2 —— 这类工具读的是自己配置,不认 Sublime 的 tab_size。
- Black 需在项目根目录加
pyproject.toml,写:[tool.black]<br>line-length = 88<br>skip-string-normalization = true<br>indent-width = 4
- autopep8 命令行加
--indent-size=4,或配置.pep8文件里的indent-size=4 - Sublime 自带的
Reindent只按当前视图的tab_size工作,所以必须先确保状态栏显示Tab Width: 4再操作










