按Ctrl+Alt+J没反应是因为三条件未同时满足:右下角语法模式非JSON、光标位于字符串内部、快捷键被Emmet等插件劫持;需手动设语法为JSON、调整光标位置、检查并修正Key Bindings重复定义。

能一键美化,但前提是三个状态必须同时对齐:插件装对了、文件被识别为JSON语法、当前没有语法错误。
为什么按 Ctrl+Alt+J 没反应?
不是插件坏了,而是常见卡点集中在三处:
- 右下角显示的是
Plain text或JavaScript,不是JSON——点一下右下角语言名,手动选JSON - 光标落在字符串内部,比如
"name": "hello|world"中的竖线位置,插件会直接跳过并报Invalid JSON: Expecting property name enclosed in double quotes - 快捷键被其他插件劫持(比如
Emmet也默认用Ctrl+Alt+J),进Preferences → Key Bindings搜一下有没有重复定义
安装 Pretty JSON 插件时容易踩的坑
别搜“JSON Formatter”或“JsPrettier”,它们不专精 JSON 格式化:
使用 JSON Schema 验证 JSON 数据,从示例 JSON 生成 schema,并将其转换为 TypeScript 接口、Python 数据类或 Markdown 文档。
- 必须搜
Pretty JSON,作者是dhg(GitHub 仓库名是SublimePrettyJson) - 装完一定要重启 Sublime Text(尤其 ST3),否则命令面板里搜不到
Pretty JSON: Format JSON - 如果用 Git 手动克隆,路径必须对应 Sublime 版本:
Packages/下(ST3/ST4)或Packages/User/(部分旧配置)
中文乱码、缩进错乱、字段顺序变乱怎么办?
这些不是 bug,是插件行为和 Sublime 设置没对齐:
- 中文显示成
\u4f60\u597d?在Pretty JSON用户配置里加"ensure_ascii": false - 缩进变成 8 个空格或混用 tab?统一在 Sublime 用户设置里设
"tab_size": 2和"translate_tabs_to_spaces": true - 键名顺序变了?这是 JSON 标准行为(对象无序),插件默认开启
sort_keys;如需保持原序,关掉它即可
最常被忽略的一点:文件编码要是 UTF-8 无 BOM。用File → Reopen with Encoding → UTF-8强制重载一次,比反复重装插件管用得多。

















