pretty json插件需三处配置对齐:语法类型设为json、快捷键未被占用、设置ensure_ascii=false及indent=2;中文乱码因默认ascii编码,缩进混乱源于sublime缩进设置与插件冲突。

装 Pretty JSON 插件能用,但默认不生效、中文变\u4f60\u597d、快捷键按了没反应——不是插件坏了,是三个地方没对上:语法类型、快捷键绑定、编码与缩进配置。
为什么 Ctrl+Alt+J 按下没反应
最常见原因是:文件当前语法没设成 JSON。Sublime 不会自动识别纯文本里的 {} 是 JSON,哪怕后缀是 .json,也得手动点右下角状态栏(显示“Plain Text”之类),选“JSON”或“JSON with Comments”。
其他可能原因:
-
Package Control没装好:按Ctrl+Shift+P调不出命令面板,就先去控制台粘贴安装脚本 - 插件名拼错:搜的是
Pretty JSON(带空格),不是PrettyJSON或JSONPretty - 快捷键被占:比如输入法、终端模拟插件或系统级热键截获了
Ctrl+Alt+J,可换用Ctrl+Shift+H或自定义绑定 - 没重启 Sublime:尤其 ST3 旧版本,装完插件必须重启才加载命令
中文显示为 \u4f60\u597d 怎么办
这是 Pretty JSON 默认开启 ensure_ascii=true 的行为,符合 JSON 标准但不友好。改设置即可:
打开 Preferences → Package Settings → Pretty JSON → Settings,把这一行加进去(或修改已有项):
使用 JSON Schema 验证 JSON 数据,从示例 JSON 生成 schema,并将其转换为 TypeScript 接口、Python 数据类或 Markdown 文档。
{
"ensure_ascii": false,
"indent": 2
}
保存后,再格式化,中文字段值就正常显示了。注意:这个设置只影响 Pretty JSON,不影响其他插件如 HTML-CSS-JS Prettify。
JSON Reindent 和 Pretty JSON 到底选哪个
看你要不要校验和容错:
-
JSON Reindent:极轻量,只做缩进重排,不检查语法。遇到多逗号、单引号、缺引号直接报错崩溃,适合你确认 JSON 绝对合法时用 -
Pretty JSON:带基础校验,格式错误会弹窗提示具体哪一行出问题,支持折叠/展开、转 JSON5,还自带右键菜单Pretty JSON → Validate - 别用
JsFormat处理 JSON:它把内容当 JS 解析,可能误删反斜杠、改null为字符串,甚至把注释当语法错误吞掉
日常开发推荐 Pretty JSON,它不依赖 Node.js,也不需要额外配 prettier CLI,开箱即调。
格式化后缩进混乱或混用 Tab/Space
根本原因不是插件,是 Sublime 自身缩进设置和插件配置打架:
- 先统一文件缩进:选中全部内容 →
View → Indentation → Convert Indentation to Spaces,再设Indent Using Spaces,宽度为2 - 关掉
detect_indentation:在Pretty JSON设置里加"detect_indentation": false,否则插件会试图猜缩进,反而覆盖你手动设的indent: 2 - 检查文件编码:右下角点编码名,必须是
UTF-8,不能是UTF-8 with BOM(BOM 会导致解析失败,静默跳过格式化)
这些配置项不起眼,但漏掉任意一个,都会让格式化结果看起来“随机”——缩进忽大忽小、中文乱码、甚至整个命令失效。










