Sublime如何一键排版JSON数据_Sublime安装JSON格式化插件【插件】

5次阅读

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

Sublime如何一键排版JSON数据_Sublime安装JSON格式化插件【插件】

JSONPretty插件安装后没反应?检查Package Control和依赖项

sublime text 默认不带 JSON 格式化功能,必须通过插件实现。最常用的是 JSONPretty,但它依赖 PyPIjson.tool(Python 自带)或 jq(需额外安装)。如果安装完插件按快捷键没反应,大概率是 Python 环境不可用或 jq 未配置。

  • 确认 Sublime 能调用系统 Python:在 Sublime 控制台(Ctrl+`)输入 import sys; print(sys.version),有输出说明正常
  • JSONPretty 插件本身不自带解析器,它只是调用命令行工具;若你选了 jq 模式但没装 jq,会静默失败
  • mac 用户装 jq 推荐用 brew install jqwindows 用户可下载 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.toolmacOS/linux)或 py -3 -m json.toolwindows
  • 勾选 Shell commandReplace selection,保存后就能一键调用

这个方法不依赖插件,但要求选中的文本必须是合法 JSON —— 多余逗号、单引号、注释都会导致 json.tool 报错并清空内容,得格外小心。

text=ZqhQzanResources