Sublime Text JSON格式化必须先安装Package Control,否则所有插件命令(如JSON Reindent、Pretty JSON)均不可用;需按Ctrl+`打开控制台粘贴官网脚本安装,重启后才能调出命令面板并正确识别JSON语法。
Sublime Text 默认不带任何 JSON 格式化能力,Ctrl+Shift+P 搜不到 json_reindent 或 pretty_json 不是你手速慢,是根本没装插件管理器。先确认:Ctrl+Shift+P 输入 Install Package Control —— 如果没这个命令,必须手动安装:按 Ctrl+` 打开控制台,粘贴官网最新 Python 脚本(2026 年仍有效),回车执行,然后必须重启 Sublime Text。重启后右下角才可能出现 JSON 语法选项,插件命令面板才能加载。
JsFormat 把内容当 JS 解析,会悄悄改语义:null 变成 "null" 字符串、删掉字符串里的反斜杠、加多余逗号;Pretty JSON 在 Sublime Text 4 上常报 ImportError: No module named 'sublime',因为它依赖旧版 Python 环境。这两个插件对 JSON 来说不是“不够好”,而是“会出错”。
JSON Reindent:只缩进、不校验、不修复,适合你已用 python -m json.tool yourfile.json 验证过合法性的场景HTML-CSS-JS Prettify:基于 js-beautify,能自动补引号、删单引号、去尾随逗号,但必须在设置里显式启用 "json": true
哪怕插件和快捷键都配好了,只要以下任一条件不满足,Ctrl+Alt+J 就会静默失败或原地不动:
JSON(不是 Plain Text、JavaScript 或 JSON with Comments);点击它手动切换,或用 Ctrl+Shift+P 输入 Set Syntax: JSON
UTF-8,不能是 UTF-8 with BOM;BOM 会导致解析器静默失败,用 File → Reopen with Encoding → UTF-8 重载View → Indentation → Convert Indentation to Spaces,再设 Indent Using Spaces
装完插件后,默认对 JSON 文件无响应。必须进 Preferences → Package Settings → HTML-CSS-JS Prettify → Settings,确保以下几项明确写入:
"json": true(否则插件忽略 .json 文件)"detect_indentation": false(否则缩进忽大忽小)"indent_size": 2(符合 JSON RFC 推荐值)"ensure_ascii": false(避免中文变成 u4f60u597d)快捷键建议绑定到用户键位文件(Preferences → Key Bindings 右侧):
[{"keys": ["ctrl+alt+j"], "command": "html_css_js_prettify", "args": {"type":"json"}, "context": [{"key":"selector","operator":"equal","operand":"source.json"}]}]
这个 context 是关键——它确保命令只在真正识别为 JSON 语法的文件里生效,避免误触发。
最常被跳过的其实是右下角语言模式和 BOM 编码这两步,它们不报错,只是让一切看起来“没反应”。