JSON Reindent是最轻量可靠的自动缩进方案,专注标准缩进重排、不校验语法、响应快、无外部依赖;安装后全选JSON内容,右键或按Ctrl+Alt+J即可格式化,需确保编码为UTF-8、关闭detect_indentation并设tab_size为2。

JSON Reindent 是最轻量可靠的自动缩进方案
如果你只想要一个专注 JSON 缩进、不带多余功能、启动快、不报错就格式化的插件,JSON Reindent 就是首选。它不校验语法,也不处理 JS 或 JSONP,只做一件事:把一整块 JSON 按标准缩进规则重排。实测在 5MB 以内的文件上响应几乎无延迟,比 JsFormat 和 Pretty JSON 更少出错。
安装路径很明确:
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS)调出命令面板 - 输入
Package Control: Install Package并回车 - 等待列表加载完成,输入
JSON Reindent,选中后回车
装完不用重启,打开任意 .json 文件,全选内容(Ctrl+A),右键 → JSON Reindent,或直接按默认快捷键 Ctrl+Alt+J(Windows/Linux)/Ctrl+Cmd+J(macOS)即可生效。
为什么 JsFormat 和 Pretty JSON 容易“卡住”或静默失败
JsFormat 和 Pretty JSON 都依赖外部库(如 js-beautify),对输入格式更敏感。常见失败场景包括:
- 文件编码是
UTF-8 with BOM——js-beautify会静默跳过,不报错也不格式化 - JSON 字符串里混了单引号、尾随逗号、注释(哪怕只是 // 开头)——
JsFormat直接抛SyntaxError停止执行 - 粘贴进编辑器的文本没有包裹在花括号
{}或方括号[]里,Pretty JSON可能误判为普通文本而不响应
它们适合需要“压缩/美化双向切换”或“验证+格式化一体”的场景,但纯缩进需求下,反而多一层不稳定因素。
缩进行为不可控?检查用户设置里的两个关键项
即使插件装好了,缩进可能还是不对(比如该缩进 2 空格却用了 4 个)。这不是插件问题,而是 Sublime 的全局缩进设置覆盖了插件逻辑。必须手动干预:
用于端到端视频本地化流程的轻量编排器,路由至四个专注子技能——/wjs-transcribing-audio、/wjs-translating-subtitles...
- 进入
Preferences → Settings – User - 确保包含这两行(其他字段可保留):
{ "tab_size": 2, "translate_tabs_to_spaces": true } - 特别注意:
"detect_indentation": false必须显式设为false,否则插件读取到文件原有缩进(比如 4 空格)就会沿用,而不是按你设定的tab_size重排
改完保存,再试一次 Ctrl+Alt+J,就能稳定输出 2 空格缩进的 JSON。
格式化前没报错,但结果乱码?先确认文件编码
中文字段显示为 \u4f60\u597d 或直接乱码,大概率是文件编码不是纯 UTF-8。Sublime 默认识别编码靠 BOM 或内容启发,但 JSON 插件(尤其是 JSON Reindent)不处理编码转换,只按当前编码解析字节流。
解决办法很简单:
- 打开文件后,看窗口右下角状态栏显示的编码名(如
UTF-8 with BOM、UTF-16) - 点击该编码名 → 选择
Convert to UTF-8(不是Reopen with Encoding) - 再执行格式化操作
如果右下角没显示编码,说明 Sublime 认为它是纯 ASCII,此时只要内容含中文,基本就是编码识别失败,强制转 UTF-8 几乎总能解决问题。
真正麻烦的不是装插件,而是缩进被全局设置劫持、编码被 BOM 混淆、或者误以为插件该干校验的活。把这三处盯住,JSON Reindent 就能稳稳当当每天帮你理清几百个接口返回体。

















