Sublime一键格式化JSON数据:Pretty JSON插件配置全解

装好 Pretty JSON 插件,却发现它“罢工”了——默认不生效、中文变成\u4f60\u597d这样的编码、快捷键按了没反应。别急着怀疑插件有问题,真相往往是三个关键配置没对齐:语法类型、快捷键绑定,以及编码与缩进设置。
为什么 Ctrl+Alt+J 按下没反应
最普遍的原因其实很简单:文件当前的语法类型没被正确设置为 JSON。Sublime Text 不会自动识别纯文本里的 {} 就是 JSON 结构,哪怕文件后缀是 .json。你得手动点一下编辑器右下角的状态栏(那里通常显示着“Plain Text”或类似字样),然后在下拉菜单中选择“JSON”或“JSON with Comments”。
当然,还有其他几种可能性值得排查:
Package Control没装好:如果连Ctrl+Shift+P都调不出命令面板,那得先去官方渠道获取安装脚本,在控制台里粘贴执行。- 插件名拼写有误:搜索安装时,要找的是
Pretty JSON(中间带空格),而不是PrettyJSON或JSONPretty这类变体。 - 快捷键被占用:可能是输入法、其他终端模拟插件,甚至是系统级别的热键拦截了
Ctrl+Alt+J。可以尝试换用Ctrl+Shift+H这个备用快捷键,或者在设置里自定义绑定。 - 忘记重启编辑器:尤其是使用 Sublime Text 3 的旧版本时,安装完插件必须重启一次,新命令才会被加载进来。
中文显示为 \u4f60\u597d 怎么办
这个问题让很多人头疼。其实,这是 Pretty JSON 插件默认开启了 ensure_ascii=true 选项导致的。这个设置虽然符合 JSON 标准规范,但对中文用户极不友好。解决方法就是修改配置。
打开 Preferences → Package Settings → Pretty JSON → Settings,在用户设置文件中加入(或修改)下面这两行:
{
"ensure_ascii": false,
"indent": 2
}
保存之后,再执行格式化,中文字段就能正常显示了。需要留意的是,这个设置只作用于 Pretty JSON 插件本身,不会影响其他如 HTML-CSS-JS Prettify 这类工具的格式化行为。
JSON Reindent 和 Pretty JSON 到底选哪个
Sublime 里处理 JSON 的插件不止一个,怎么选?关键看你对校验和容错的需求。
JSON Reindent:极其轻量,只做一件事——重新缩进。它不检查语法,所以一旦遇到多余逗号、使用单引号或者缺少引号等情况,会直接报错崩溃。它适合在你百分百确认 JSON 内容合法时使用。Pretty JSON:功能更全面,自带基础语法校验。如果格式有误,它会弹窗提示具体哪一行出了问题。此外,它还支持代码折叠/展开、转换 JSON5 格式,并且提供了右键菜单的Pretty JSON → Validate验证功能。- 特别注意,别用
JsFormat来处理 JSON:这个插件会把内容当作 Ja vaScript 来解析,可能导致误删反斜杠、将null改为字符串,甚至把注释当作语法错误直接吞掉。
对于日常开发,Pretty JSON 通常是更推荐的选择。它不依赖 Node.js 环境,也不需要额外配置 prettier 命令行工具,基本做到了开箱即用。
格式化后缩进混乱或混用 Tab/Space
格式化完,缩进却变得乱七八糟,或者 Tab 和空格混用?问题的根源往往不在插件本身,而是 Sublime Text 自身的缩进设置与插件配置产生了冲突。
- 先统一文件的缩进规则:全选内容,通过
View → Indentation → Convert Indentation to Spaces转换为空格,然后设置Indent Using Spaces,并将缩进宽度设为2。 - 关闭插件的缩进探测:在
Pretty JSON的用户设置里,加上"detect_indentation": false这一行。否则,插件会尝试“猜测”文件的缩进风格,反而可能覆盖你手动设置的indent: 2。 - 检查文件编码:点击编辑器右下角显示的编码名称,确保它是
UTF-8,而不是UTF-8 with BOM。带 BOM 的编码有时会导致解析失败,让格式化命令静默地跳过执行。
这些配置项看似不起眼,但漏掉其中任何一个,都足以让格式化结果变得“随机”——缩进时大时小、中文乱码重现,甚至整个命令直接失效。说到底,让工具听话的秘诀,就在于细节处的精准对齐。
