JSONPretty插件需依赖Python或jq工具,安装后无反应应检查环境;快捷键需手动绑定并限定JSON语法上下文;缩进与中文显示问题可通过用户配置修改;也可用Sublime内置验证配合外部json.tool命令替代。

JSONPretty插件安装后没反应?检查Package Control和依赖项
Sublime Text 默认不带 JSON 格式化功能,必须通过插件实现。最常用的是 JSONPretty,但它依赖 PyPI 的 json.tool(Python 自带)或 jq(需额外安装)。如果安装完插件按快捷键没反应,大概率是 Python 环境不可用或 jq 未配置。
- 确认 Sublime 能调用系统 Python:在 Sublime 控制台(
Ctrl+`)输入import sys; print(sys.version),有输出说明正常 -
JSONPretty插件本身不自带解析器,它只是调用命令行工具;若你选了jq模式但没装jq,会静默失败 - Mac 用户装
jq推荐用brew install jq;Windows 用户可下载jq.exe并加入系统PATH
如何设置 Ctrl+Alt+J 一键格式化当前 JSON 文件
默认快捷键不是开箱即用的,需要手动绑定。关键是把快捷键映射到 json_pretty_print 命令,且确保当前视图是 JSON 类型(否则插件不触发)。
- 打开
Preferences → Key Bindings,在右侧用户键绑定中添加:
[
{ "keys": ["ctrl+alt+j"], "command": "json_pretty_print", "context":
[
{ "key": "selector", "operator": "equal", "operand": "source.json" }
]
}
]
- 注意
context字段:没有它,哪怕光标在 JSON 里,按快捷键也可能无响应 - 如果文件没被识别为
source.json(比如后缀是.txt或没后缀),先按Ctrl+Shift+P输入Set Syntax: JSON手动切换语法高亮
格式化后缩进错乱或中文变 Unicode?改插件配置
JSONPretty 默认用 2 空格缩进、不保留中文字符,这在调试 API 返回时很反直觉。这些行为由插件的用户配置控制,不是靠改 Python 代码。
- 打开
Preferences → Package Settings → JSONPretty → Settings - 在右侧用户设置中加入:
{
"indent": 4,
"ensure_ascii": false,
"sort_keys": true
}
-
ensure_ascii: false是关键,否则中文会被转成\u4f60这类编码 -
sort_keys有助于比对两个 JSON 是否结构一致,但会改变原始字段顺序,慎开 - 改完保存,无需重启 Sublime,下次格式化立即生效
替代方案:不用插件,用 Sublime 内置的 JSON 验证 + 外部命令
如果你只偶尔格式化、不想装插件,或者团队禁用第三方包,可以用 Sublime 自带的 JSON 验证 + 终端命令组合。
- 先用
Ctrl+Shift+P运行JSON: Validate确保语法正确(否则格式化会失败) - 选中全部内容(
Ctrl+A),再运行Tools → External Tools → New External Tool… - 填入命令:
python -m json.tool(macOS/Linux)或py -3 -m json.tool(Windows) - 勾选
Shell command和Replace selection,保存后就能一键调用
这个方法不依赖插件,但要求选中的文本必须是合法 JSON —— 多余逗号、单引号、注释都会导致 json.tool 报错并清空内容,得格外小心。










