Sublime Text需装JsPrettier(JS/TS/JSON)和SublimeBlack(Python)插件实现可靠格式化,禁用老旧插件;须全局安装prettier/black,配置auto_indent、use_stdin等参数,并统一tab_size、translate_tabs_to_spaces基础缩进设置。

Sublime Text 本身不内置完整的代码格式化能力,必须依赖插件;但不是所有插件都靠谱,尤其对 Python、JavaScript 或 JSON 等语言,选错插件会导致缩进错乱、引号反转、甚至删掉注释。
怎么装 JsPrettier(JS/TS/JSON 格式化首选)
它底层调用 Prettier,稳定、可配置、支持现代语法。别用老掉牙的 Sublime-HTMLPrettify 或 HTML-CSS-JS Prettier 这类命名混乱的 fork 版本。
- 用
Package Control → Install Package搜索并安装JsPrettier - 确保系统已全局安装
prettier:npm install -g prettier(Windows 用户注意:CMD/PowerShell 需重启才能识别命令) - 首次运行前,按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入JsPrettier回车,会自动生成用户配置文件JsPrettier.sublime-settings - 在配置中加一行:
"auto_indent": true,这样保存时自动对齐(需配合"auto_save": true使用)
Python 用 Black 插件而不是 AutoPEP8
AutoPEP8 只修空格和换行,不改逻辑风格,且对 f-string、类型提示支持差;Black 是事实标准,一劳永逸。
- 先装
black:pip install black - 再装插件:
Package Control → Install Package → SublimeBlack(认准作者是zabb0t的版本) - 默认快捷键是
Ctrl+Shift+K,但容易和系统快捷键冲突,建议在Preferences → Key Bindings里改成Ctrl+Alt+L(和 PyCharm 一致) - 如果格式化后报错
black failed: error: cannot format stdin,说明 Sublime 没把内容传给 black——检查插件设置里是否启用了"use_stdin"且值为true
通用对齐:别依赖插件,先调对 tab_size 和 translate_tabs_to_spaces
很多“对不齐”问题根本不是格式化插件的事,而是编辑器基础缩进配置错了。
- 打开
Preferences → Settings,确认右侧用户设置里有:"tab_size": 2(或 4,按团队规范)"translate_tabs_to_spaces": true"detect_indentation": false(关掉自动探测,避免打开不同项目时忽大忽小) - 如果某文件右下角显示
Tab Width: 4 (no conversion),说明当前文件覆盖了全局设置——点那里手动切回Convert Indentation to Spaces - 批量修复旧文件缩进:全选(
Ctrl+A)→ 右键 →Indentation → Convert Indentation to Spaces→ 再选一次Indentation → Indent Using Spaces
真正麻烦的是混用制表符和空格的遗留项目,JsPrettier 和 SublimeBlack 都可能在这种文件里静默失败——建议先用正则 ^\t+ 批量删掉行首 tab,再统一处理。










