sublime text 默认无代码格式化快捷键,需安装插件并正确配置:jsprettier须加context和args、black命令名为“black”、html-css-js prettify需改快捷键且不支持局部格式化、reindent仅调缩进非真格式化。

Sublime Text 本身没有默认的代码格式化快捷键,Ctrl+Alt+F 或 Ctrl+Shift+I 按了没反应是正常的——不是你配错了,是它压根没这个功能。
JsPrettier 快捷键必须带 context 和 args 才生效
JsPrettier 是目前 JS/TS/JSX/JSON 最稳的格式化插件,但它的快捷键不能裸写。只加 {"keys": ["ctrl+alt+f"], "command": "js_prettier"} 会全局触发,一打开 Python 文件就报错退出。
- 必须加
"context"限定作用范围:"selector": "source.js, source.ts, source.jsx, source.json" - 想支持选中区域格式化?得显式传参:
"args": {"selection_only": true},否则永远只处理整文件 - Windows 用户注意:
prettier_cli_path值必须是绝对路径 +.cmd后缀,例如C:\Users\xxx\AppData\Roaming\npm\prettier.cmd;填prettier或留空,必失败 - 终端执行
prettier --version能返回版本号,才说明 CLI 已就位;否则先npm install -g prettier
HTML-CSS-JS Prettify 的快捷键默认就冲突
它的默认快捷键 ctrl+shift+h 和 Sublime 自带的「显示控制台」完全重叠,按下去只会闪一下就消失。
- 推荐改成
ctrl+alt+h或ctrl+alt+shift+h,在Preferences → Key Bindings用户配置里覆盖 - 它不支持
selection_only参数,想局部格式化只能手动全选代码块再按快捷键 - 右下角语法识别必须是
text.html.basic、source.css或source.js;显示Plain Text时命令直接不可用 - 遇到
.vue或.svelte单文件组件,它会乱缩进,建议关掉自动触发,只手动选中 script/style 标签内内容执行
Black 插件的 command 名和 autopep8 容易搞混
Python 格式化别用 autopep8(已多年未维护),:= 海象运算符、类型注解都会解析失败;black 是首选,但命令名不是 black,也不是 black_formatter。
- 正确命令是
black(小写,无下划线),快捷键配置里写"command": "black" - 如果按快捷键后状态栏显示
black not found,说明系统 PATH 里没black命令:终端运行black --version验证,不行就pip install black - 想只格式化选中代码?同样要加
"args": {"selection_only": true},否则黑盒式整文件重写 - 注意文件编码:含 BOM 的 UTF-8 文件可能被 black 拒绝处理,保存为 UTF-8 without BOM 更稳妥
reindent 不是格式化,别拿它当万能键
Edit → Line → Reindent 只重排缩进,不改括号换行、引号风格、空格数量,更不处理 JSX 或模板字符串里的换行逻辑。
- 它只在选区“语法自洽”时工作:比如完整函数体、匹配的
{}或<div></div>;开头是注释、跨括号、含未闭合引号,就静默跳过 - 右下角必须是具体语言(如
Python、JavaScript),不能是Plain Text - 快捷键可设为
ctrl+alt+l,但它是辅助手段,不是替代方案——真要格式化,还是得靠对应语言的插件 - 哪怕所有配置都对,
reindent在 CRLF 行尾符或混合缩进(空格+Tab)文件里也容易崩,不如直接用插件
真正容易被忽略的是:插件命令是否注册成功,得靠 Ctrl+Shift+P 手动搜一次插件名(比如 JsPrettier Format Code)来验证;不执行,说明插件根本没加载,重启 Sublime 是硬性前提,不是可选项。











