必须先安装Package Control才能使用JSON格式化插件;推荐HTML-CSS-JS Prettify,因其支持语法校验、自动修复、中文及UTF-8友好,且需配置编码为UTF-8、缩进为空格2位、禁用detect_indentation。

装完Package Control才能用任何JSON格式化插件
Sublime Text 4 默认不带 JSON 格式化能力,按 Ctrl+Shift+P 搜 JSON Reindent 或 Pretty JSON 找不到命令,不是你操作错,是根本没装插件管理器。先确认是否已安装 Package Control:按 Ctrl+Shift+P 输入 Install Package Control,如果没这个选项,就得手动安装——去官网下载 Python 脚本,粘贴进 Sublime 的 View → Show Console 执行。装完必须重启,否则插件列表不加载。
推荐用 HTML-CSS-JS Prettify,不是 JSON Reindent
虽然 JSON Reindent 轻量,但它只缩进、不校验、不修复,遇到末尾逗号或单引号就直接报错退出;而 HTML-CSS-JS Prettify 基于 js-beautify,能识别语法错误、自动修复常见问题(比如补全缺失的引号)、保留原始换行风格,且对中文、UTF-8 BOM 更友好。
- 安装后右下角状态栏必须显示
JSON(不是Plain Text或JavaScript),否则命令不可用 - 默认快捷键
Ctrl+Shift+H可能被系统占用,建议在Preferences → Key Bindings中加一条专属绑定:[{"keys": ["ctrl+alt+j"], "command": "html_css_js_prettify", "args": {"type": "json"}, "context": [{"key": "selector", "operator": "equal", "operand": "source.json"}]}] - 务必在插件设置中关闭
detect_indentation,否则缩进会忽大忽小;同时设"indent_size": 2,符合 JSON RFC 推荐值
中文乱码、缩进错乱、快捷键没反应?先查这三处
这些不是插件坏了,而是 Sublime 自身配置和文件状态没对齐:
- 右下角编码必须是
UTF-8,不能是UTF-8 with BOM——BOM 会导致js-beautify解析失败,报错但不提示原因 - 缩进必须统一为空格:执行
View → Indentation → Convert Indentation to Spaces,再设Indent Using Spaces,宽度固定为 2 -
Preferences → Settings用户配置里别写"detect_indentation": true,它会覆盖插件设置,让缩进行为不可控
别碰 Pretty JSON 和 JsFormat 这两个坑
Pretty JSON 依赖本地 Python 环境,在 Sublime Text 4(Python 3.8+)上常因路径或模块缺失崩溃;JsFormat 把 JSON 当 JS 解析,会悄悄转义反斜杠、删掉注释(哪怕只是开发时临时加的),甚至把 null 改成 "null" 字符串。
如果你只是打开一个 config.json 想快速对齐,装 HTML-CSS-JS Prettify 就够了。复杂点在于:它不会自动保存时格式化,得手动触发——这不是缺陷,是保护机制;JSON 文件里常有密钥、路径、正则表达式,自动重排可能掩盖手误。











