Sublime Text JSON格式化需三步:装好Package Control、设为JSON语法、配对插件;缺一不可,否则快捷键无效或静默失败。

Sublime Text 本身不支持 JSON 格式化,所谓“一键美化”必须装对插件、设对语法、配对编码——三者缺一不可。按 Ctrl+Shift+P 搜不到格式化命令,不是你手速慢,是 Package Control 还没装好。
怎么确认 Package Control 已就位?
这是所有后续操作的硬门槛。没它,插件根本不会加载。
- 按
Ctrl+Shift+P(macOS 是Cmd+Shift+P),输入Install Package Control—— 如果这个命令存在,说明已装;搜不到就得手动装 - 手动装:按
Ctrl+`打开控制台,粘贴官网最新 Python 脚本(2026 年仍有效),回车执行 - 装完必须重启 Sublime Text,否则新插件不会出现在命令面板里
右下角显示 Plain Text?格式化命令压根不会触发
Sublime 不会自动把 .json 文件或含 {} 的文本识别为 JSON。它只认当前语法模式。
- 看右下角状态栏,如果不是
JSON(注意不是JSON with Comments或JavaScript),点击它 - 选
JSON;若列表里没有,按Ctrl+Shift+P输入Set Syntax: JSON回车 - 快捷键如
Ctrl+Alt+J在非 JSON 语法下完全无效,也不会报错,只是静默忽略
Pretty JSON vs JSON Reindent:别用错场景
二者命令名、行为、容错性完全不同,混用会导致格式失败或结构被改。
-
Pretty JSON:带校验,非法 JSON(如末尾逗号、单引号)会弹窗报错并指出行列;支持"ensure_ascii": false显示中文;右键菜单直接有Pretty JSON → Beautify -
JSON Reindent:只缩进,不校验、不修复、不处理注释;遇到错误直接静默失败,内容不变;适合你已用python -m json.tool验证过的数据 - 别用
JsFormat或JSBeautify处理纯 JSON——它们当 JS 解析,可能把null变成"null"、删掉字符串里的反斜杠、加多余逗号
格式化后中文变 \u4f60\u597d 或缩进混乱?问题不在插件
这是 Sublime 自身设置和插件配置没对齐的典型表现。
- 中文乱码:打开
Preferences → Package Settings → Pretty JSON → Settings,加入"ensure_ascii": false - 缩进忽大忽小:检查插件设置中是否启用了
"detect_indentation": true(应设为false),再统一设为 2 空格:"indent_size": 2 - BOM 头干扰:全选 →
File → Reopen with Encoding → UTF-8,再试格式化 - 快捷键冲突(比如
Ctrl+Alt+J被输入法占用):在Preferences → Key Bindings用户文件里加一条:{"keys": ["ctrl+alt+j"], "command": "pretty_json", "args": {"type": "json"}, "context": [{"key": "selector", "operator": "equal", "operand": "source.json"}]}
最常被忽略的其实是“JSON 合法性”本身——插件不是解析器,不负责修复语法。复制来的 JSON 常含 HTML 实体、BOM、注释,这些都得先手动清理或用 JSON.parse() 验证通过,格式化才真正开始工作。


















