装了 pretty json 插件却按 ctrl+alt+j 没反应,是因为未切换至 json 语法模式、未手动绑定快捷键,或中文被转义为 \u4f60\u597d;需右下角切语言为 json,用户键位中添加 {"keys": ["ctrl+alt+j"], "command": "pretty_json_beautify"},并设置 ensure_ascii 为 false。

装了 Pretty JSON 插件却按 Ctrl+Alt+J 没反应?不是插件坏了,是语法没切对、快捷键没绑上,或者中文被转成 \u4f60\u597d 以为失败了。
格式化前必须手动切到 JSON 语法模式
Sublime 不会自动识别一段文本是不是 JSON。哪怕你粘贴的是 {"name":"张三"},只要右下角显示的是 Plain Text 或 JavaScript,Pretty JSON 的命令就不可用。
- 打开文件或新建空文件 → 粘贴 JSON 内容 → 点右下角语言标识(如
Plain Text)→ 选JSON或JSON with Comments - 如果文件后缀是
.json,一般会自动识别;但.txt、.js或无后缀粘贴体,必须手动切 - 切错语法后按
Ctrl+Shift+P搜Pretty JSON,命令列表里压根不会出现
快捷键默认不生效,得自己加绑定
Pretty JSON 安装完不带默认快捷键,Ctrl+Alt+J 是常见误传——那是 JSON Reindent 或 JSONPretty 的键位,不是它的。
- 进
Preferences → Key Bindings,在右侧用户键位文件中加一行: {"keys": ["ctrl+alt+j"], "command": "pretty_json_beautify"}- 注意:
command名必须是pretty_json_beautify,不是pretty_json或json_reindent - 保存即生效,不用重启;Mac 用户把
ctrl换成super
中文显示为 \uXXXX?改 ensure_ascii=false
格式化后中文变成 Unicode 转义,看着像乱码,其实是 Pretty JSON 默认行为(符合 JSON 标准,但开发中基本不需要)。
- 进
Preferences → Package Settings → Pretty JSON → Settings - 找到
"ensure_ascii"这一项,设为false(布尔值,不是字符串"false") - 如果设置里没有这行,就手动加在顶层
{}里,比如:"ensure_ascii": false - 改完保存,再格式化——中文就原样显示了
选中部分 JSON 格式化?它不智能提取,只处理所选文本
你在 HTML 文件里选中一段 {"id":1,"name":"test"} 去格式化,插件不会管它是不是合法独立 JSON,也不会帮你补外层括号或删多余字符。
- 所选内容必须是完整、合法的 JSON 值:对象
{}、数组[]、字符串""、数字等 - 含单引号、尾随逗号、JS 注释、HTML 标签包裹的内容,都会报错或静默失败
- 嵌套结构截断(比如只选了对象里某几个字段)会导致解析失败,别指望它“猜”上下文
- 纯 JSON 文件建议全选
Ctrl+A后再格式化,更稳
最易忽略的其实是语法切换和 ensure_ascii 设置——这两步不做,其他都白搭;而一旦设错 command 名或拼错 ensure_ascii 的值类型,插件就彻底“失声”。











