应安装HTML-CSS-JS Prettify而非过时的Sublime-Prettify;它原生支持JSON、无需Node.js,快捷键Ctrl+Shift+H可格式化,需确保文件类型为JSON、启用detect_indentation、且JSON合法。

Sublime Text 3 安装 Prettify 插件失败的常见原因
直接通过 Package Control 搜索 Prettify 并安装,大概率装的是一个早已停止维护、不兼容 Sublime Text 3+ 的旧版(作者已归档仓库),导致快捷键无效或报错 AttributeError: 'NoneType' object has no attribute 'replace'。
- 真正能用的 JSON 格式化插件不是叫
Prettify,而是JsPrettier(侧重 JS/JSON)或更轻量的HTML-CSS-JS Prettify - Package Control 默认索引里搜
Prettify会优先返回过时的Sublime-Prettify,必须手动排除 - 如果已误装旧版,得先在
Preferences → Package Control → Remove Package里删掉Sublime-Prettify,再重装
一键格式化 JSON 的正确安装路径(ST3 / ST4)
用 HTML-CSS-JS Prettify 是最稳的选择:它原生支持 JSON,不依赖 Node.js,也不需要额外配置 prettier CLI。
- 打开命令面板(
Ctrl+Shift+P或Cmd+Shift+P),输入Package Control: Install Package - 搜索并安装
HTML-CSS-JS Prettify(注意名字里有连字符,不是Prettify单词) - 安装完后,打开一个
.json文件,全选内容(Ctrl+A),再按Ctrl+Shift+H—— 这就是默认的格式化快捷键 - 如果快捷键冲突,可在
Preferences → Key Bindings里查html_css_js_prettify对应的 keymap
为什么不用 JsPrettier 或 prettier 命令行?
JsPrettier 虽然功能强,但对 JSON 场景属于“杀鸡用牛刀”,且容易卡在环境配置上。
- 它强制依赖本地全局安装的
prettierCLI,而npm install -g prettier在某些系统(如 macOS M1 + zsh)下路径权限常出问题 - 即使装好了,还要在插件设置里填
prettier_cli_path,一不留神就指向了错误的node_modules/.bin/prettier - 格式化 JSON 时,
JsPrettifier默认会尝试解析为 JS 对象(比如把单引号转双引号),反而破坏原始 JSON 语义 -
HTML-CSS-JS Prettify内置 JSON 解析器,不走外部进程,快、稳、无副作用
格式化后缩进/换行不生效?检查这三项
不是插件没起作用,而是编辑器本身设置或文件类型识别出了问题。
- 确认当前文件右下角状态栏显示的是
JSON(不是Plain text或JavaScript),点一下切换到JSON - 检查
Preferences → Settings里是否有"detect_indentation": false,如果有,删掉或设为true,否则插件可能读不到缩进偏好 - 如果 JSON 含有注释或尾逗号(非标准 JSON),
HTML-CSS-JS Prettify会静默跳过格式化 —— 它只处理合法 JSON,这点比 prettier 更严格也更安全










