sublime text 的 json 格式化需三步:装好 package control、选对插件(json reindent/html-css-js prettify/pretty json)、绑定带 context 的快捷键;右下角状态栏须显示 json,编码为 utf-8,缩进统一为空格。

Sublime Text 本身不带 JSON 格式化功能,所谓“设置快捷键”本质是三步到位:装好 Package Control、装对插件、绑定命令到正确上下文。跳过任一环,Ctrl+Alt+J 或其他组合键都只是摆设。
确认 Package Control 已真正就绪
这不是“点一下安装就完事”的流程。90% 的快捷键失效,根源在这里:
- 按
Ctrl+Shift+P(macOS 是Cmd+Shift+P),输入Install Package Control—— 能搜到才说明已装;搜不到就得手动:按Ctrl+`打开控制台,粘贴官网最新 Python 脚本执行,再必须重启 Sublime Text - 重启后再次按
Ctrl+Shift+P,输入Install Package,能弹出列表才算成功 - 如果连这一步都卡住,后续所有快捷键配置都无意义
选插件前先看你的 JSON 来自哪
不同来源的 JSON 对工具要求差异很大,别盲目跟教程装:
- API 响应体、本地 mock 数据、结构确定合法的配置文件 → 用
JSON Reindent:轻量、不校验、不改字段顺序、不依赖外部环境;快捷键默认Ctrl+Alt+J(Win/Linux)或Cmd+Alt+J(macOS) - 前端调试中随手粘贴的响应、含单引号/尾随逗号/中文乱码的脏数据 → 用
HTML-CSS-JS Prettify:能自动修复常见语法错误,但需在插件设置里显式开启"json": true,且右下角状态栏必须显示JSON(不是Plain Text) - 需要验证 + 美化 + 折叠三位一体 → 用
Pretty JSON:出错时会弹窗提示具体行列,支持右键菜单Pretty JSON → Beautify,快捷键也是Ctrl+Alt+J,但默认不绑定 context,容易误触发
快捷键绑定必须加 context 限定
直接在 Preferences → Key Bindings 里加一条裸命令,大概率在 JS 文件里也生效,甚至崩掉。正确写法是限定作用域:
[
{
"keys": ["ctrl+alt+j"],
"command": "html_css_js_prettify",
"args": {"type": "json"},
"context": [
{"key": "selector", "operator": "equal", "operand": "source.json"}
]
}
]
-
"selector": "source.json"是硬性条件,确保只在识别为 JSON 语法的文件中响应 - 如果用
JSON Reindent,对应 command 是json_reindent;用Pretty JSON则是pretty_json - 别漏掉
context字段——否则你在写 JS 时按Ctrl+Alt+J,可能把对象字面量格式化成非法 JSON
格式化失败?先盯住这三处硬性状态
不是插件坏了,是 Sublime 自身状态没对齐:
- 右下角状态栏必须显示
JSON:点它手动切换,否则命令面板里压根不加载 JSON 相关命令 - 编码必须是
UTF-8,不能是UTF-8 with BOM:BOM 会让解析器静默失败,连错误都不报 - 缩进必须统一为空格且宽度固定:执行
View → Indentation → Convert Indentation to Spaces,再设Indent Using Spaces为 2;同时确保用户配置里没有"detect_indentation": true,它会干扰插件行为
最常被忽略的是:JSON 格式化工具不负责“标准化键序”,也不修复语法错误——它只处理空白符。如果你的 JSON 本身带单引号或末尾逗号,JSON Reindent 会原样缩进甚至崩溃;Pretty JSON 会报错;只有 HTML-CSS-JS Prettify 可能自动修,但也得你提前配对参数。别指望快捷键一键解决所有问题,先让输入合法,才是关键。











