ctrl+alt+j默认不存在,需手动绑定;必须满足三条件:command名写为pretty_json_beautify、添加source.json语法context限定、文件编码为utf-8且内容合法。

Ctrl+Alt+J 不是开箱即用的快捷键,它默认不存在,必须手动绑定;而且即使绑了,也只在文件语法为 source.json、编码为 UTF-8(不含 BOM)、内容合法的前提下才生效。
为什么 Ctrl+Alt+J 按下没反应
这不是插件故障,而是三处配置没对齐:
- 插件本身不带默认快捷键——
Pretty JSON安装后完全无绑定,网上流传的Ctrl+Alt+J是用户自定义方案,不是默认行为 -
command名必须写对:pretty_json_beautify(不是pretty_json、json_reindent或un_pretty_json) - 必须加
context限定:只在 JSON 语法下触发,否则你在 JS 文件里一按就误格式化,或压根不响应
验证方式:打开命令面板 Ctrl+Shift+P,输入 Pretty JSON: Format JSON 手动执行一次,成功了说明插件和语法都 OK,问题纯属快捷键没配好。
怎么安全绑定只对 JSON 生效的快捷键
进 Preferences → Key Bindings,在右侧用户文件中粘贴这段(Windows/Linux):
[{"keys": ["ctrl+alt+j"], "command": "pretty_json_beautify", "context": [{"key": "selector", "operator": "equal", "operand": "source.json"}]}]
Mac 用户把 ctrl 换成 super(即 Cmd);别用 Ctrl+Shift+H——它常被输入法或终端插件占用。
关键点:
使用 JSON Schema 验证 JSON 数据,从示例 JSON 生成 schema,并将其转换为 TypeScript 接口、Python 数据类或 Markdown 文档。
- 这个
context能彻底避免在 JS/HTML 文件里误触发 - 如果右下角显示的是
JSON with Comments(常见于 .jsonc),得把operand改成source.json meta.structure.dictionary.json或直接改用html_css_js_prettify插件(它原生支持 jsonc) - 改完保存,不用重启,立刻生效
格式化失败时先查这三件事
报错 Invalid JSON: Expecting property name enclosed in double quotes 或静默无反应,大概率是以下其一:
- 文件编码是
UTF-8 with BOM:右下角点编码名 → 选Convert to UTF-8(不是Reopen with Encoding) - 内容含非标准语法:单引号、尾随逗号、JS 注释
//、HTML 实体"、未闭合引号——Pretty JSON不修复,只校验;可换html_css_js_prettify并开启"json": true配置来自动补双引号 - 光标落在字符串值内部:比如
"path": "C:\temp|file"中的竖线位置,插件会跳过解析;全选整段再试
中文变 \u4f60\u597d 怎么办
这是 ensure_ascii=true 的默认行为,符合 JSON 标准但开发中不可读。改插件设置即可:
进 Preferences → Package Settings → Pretty JSON → Settings,添加:
{"ensure_ascii": false, "indent": 2}
注意:false 是布尔值,不是字符串;改完立即生效,无需重启 Sublime。如果用了 html_css_js_prettify,对应配置项是 "json": {"ensure_ascii": false}。
真正容易被忽略的是:缩进混乱往往不是插件问题,而是当前文件缩进混用 Tab 和 Space,得先全选 → View → Indentation → Convert Indentation to Spaces,再设为 2 空格宽度。










