sublime text 4 需先安装 package control,再装 html-css-js prettify 插件并配置 json 支持、utf-8 编码、禁用 detect_indentation、设缩进为 2 空格及专属快捷键,否则 json 格式化不可用。

Sublime Text 4 默认不支持 JSON 格式化,按 Ctrl+Shift+P 搜 JSON Reindent 或 Pretty JSON 找不到命令,不是你操作错,是根本没装插件管理器或插件本身不兼容。
先确认 Package Control 是否已安装并生效
这是所有插件的前提,缺了它,后续所有格式化功能都不可用。
- 按
Ctrl+Shift+P输入Install Package Control—— 如果没这个选项,说明没装 - 手动安装:按
Ctrl+`调出控制台,粘贴官网 Python 脚本(ST4 对应 SHA256 哈希值为6f4c264a24d933ce70df5dedc1efb8001a3232031432121d212fd82e000121),回车执行 - 装完必须重启 Sublime Text,否则插件列表不会加载,新装插件也不会出现在命令面板里
装哪个插件?优先选 HTML-CSS-JS Prettify,别碰 PrettyJSON 和 JSBeautify
HTML-CSS-JS Prettify 是目前最稳的选项,它基于 js-beautify,能校验、修复、保留换行风格,且对中文和 UTF-8 BOM 更友好;PrettyJSON 在 ST4 上常因 Python 环境报 ImportError: No module named 'sublime';JSBeautify 会把 {"a":1} 错误转成 {"a": 1,}(多加逗号),直接导致解析失败。
- 装法:
Ctrl+Shift+P→Package Control: Install Package→ 搜HTML-CSS-JS Prettify→ 回车 - 装完右下角状态栏必须显示
JSON(不是Plain Text或JavaScript),否则命令不可用 - 检查是否启用 JSON 支持:打开
Preferences → Package Settings → HTML-CSS-JS Prettify → Settings,确认"json": true
快捷键和缩进配置必须手动设,不能靠默认
默认快捷键 Ctrl+Shift+H 容易被系统占用,且插件默认缩进宽度是 4,不符合 JSON RFC 推荐的 2 空格;更关键的是,如果全局开启 detect_indentation,缩进会忽大忽小,格式化后乱套。
- 加专属快捷键:打开
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": false - 固定缩进为 2 空格:
"indent_size": 2 - 确保文件编码是
UTF-8(不是UTF-8 with BOM)——BOM 会导致js-beautify静默失败,不报错也不格式化
格式化失败时,先查这三处,不是插件坏了
点了命令没反应、内容变空白、中文变乱码,大概率不是插件问题,而是环境没对齐。
- 右下角编码显示是否为
UTF-8?点开它 →Reopen with Encoding → UTF-8 - 缩进是否统一为空格?执行
View → Indentation → Convert Indentation to Spaces,再设Indent Using Spaces,宽度为 2 - 用户设置(
Preferences → Settings)里有没有写"detect_indentation": true?有就删掉,它会覆盖插件设置
真正容易被忽略的是 BOM 和 detect_indentation 的冲突——它们不会报错,只会让格式化看起来“有时灵有时不灵”,排查时得盯着状态栏编码和缩进模式看,而不是反复重装插件。











