必须先安装package control,再安装html-css-js prettify插件并确保文件语法模式为json,才能正常格式化json;否则因前提缺失、语法不匹配或json非法导致失败。

JSON 格式化失败:没装 Package Control 就别想用插件
Sublime Text 默认不带 JSON 格式化能力,直接按 Ctrl+Shift+P 搜 JSON Reindent 或 Beautify 会找不到——因为根本没装插件管理器。这不是配置问题,是前提缺失。
- 先确认是否已安装
Package Control:按Ctrl+Shift+P,输入Install Package Control,如果没这个命令,就得手动装(官网下载 Python 脚本,粘贴进 Sublime 的View → Show Console执行) - 装完重启 Sublime,再按
Ctrl+Shift+P输入Install Package,回车后搜JsPrettier或HTML-CSS-JS Prettify(推荐后者,轻量、专治 JSON) - 别装
SublimePrettyJson:它依赖 Python 2.7,新版 Sublime(4.x)默认用 Python 3.8+,一启用就报错ImportError: No module named 'sublime'
选对命令:用 jsprettify 还是 html-css-js-prettify?
两者都能格式化 JSON,但触发逻辑和兼容性差别很大。关键看你的文件是不是纯 JSON,还是混在 JS/HTML 里。
-
html-css-js-prettify:支持.json后缀自动识别,右键菜单有Prettify JSON,也支持Ctrl+Shift+H快捷键;对缩进空格数、是否保留末尾逗号等可配,配置路径是Preferences → Package Settings → HTML-CSS-JS Prettify → Set Prettify Preferences -
JsPrettier:本质是调prettierCLI,必须本地装npm install -g prettier,且 JSON 文件得手动切到JavaScript语法模式(右下角点开语言名选),否则不响应Ctrl+Shift+P → JsPrettier - 如果你只是打开一个
config.json文件想快速对齐,直接装html-css-js-prettify,别绕弯
格式化后乱码或崩溃:检查 BOM 和非法字符
不是所有 JSON 都能被顺利解析。Sublime 会静默失败——你点了格式化,光标动了下,内容却原封不动,甚至整块变空白。大概率是编码或内容问题。
- 用
File → Reopen with Encoding → UTF-8强制重载,排除 BOM 干扰(尤其 Windows 下用记事本保存的 JSON 常带 BOM) - 检查是否有
//注释、单引号键名、尾部逗号("key": "val",)、未转义的换行符——这些在 JS 里合法,但在标准 JSON 里是语法错误,html-css-js-prettify会直接放弃处理 - 临时验证:把内容粘到 jsonlint.com,看报哪行。Sublime 不提示具体错误位置,靠猜不如借外部工具定位
快捷键冲突或不生效:别忽略语法模式和作用域
按了 Ctrl+Shift+H 没反应?不是插件坏了,是当前文件没被识别成 JSON。
- 右下角看状态栏:如果是
Plain text或JavaScript,格式化命令不会触发。必须是JSON(或JSON with Comments)才有效。手动点一下语言名,选JSON - 如果文件没后缀(比如叫
data),Sublime 不会自动设语法模式,此时快捷键必然失效 - 快捷键可自定义:打开
Preferences → Key Bindings,加一行:[{"keys": ["ctrl+alt+j"], "command": "html_css_js_prettify", "args": {"type": "json"}}],避免和其他插件冲突
真正卡住人的,往往不是“怎么装”,而是“为什么装了还不动”——十次里八次,是语法模式没对上,或者 JSON 本身就不合法。别急着换插件,先看右下角那两个字。











