vscode格式化locale.json失败的主因是语言模式非json或内容不合法;需检查右下角语言模式、文件后缀、json.format.enable设置,并确保使用英文双引号、无注释、无零宽字符。

直接按 Shift+Alt+F(Windows/Linux)或 Shift+Option+F(macOS)就能格式化 locale.json,前提是它被识别为 JSON 且内容合法。
为什么 Format Document 按钮是灰色的
VSCode 不是“没反应”,是根本没把它当 JSON 处理。常见原因:
- 右下角语言模式显示为
Plain Text、JSON with Comments或JavaScript—— 点击它,手动选JSON - 文件名不是
.json后缀(比如叫locale或zh-CN)—— 按Ctrl+K M(Win/Linux)或Cmd+K M(macOS),输入json回车 -
"json.format.enable": false被意外关闭 —— 在设置里搜这个配置项,确认值为true
粘贴后按快捷键没反应,大概率是内容不合法
VSCode 连解析都失败了,自然不会格式化。重点检查:
Miller (mlr) 是一个命令行工具,用于查询、整形和重新格式化名称索引数据,如 CSV、TSV、JSON 和 JSON Lines。它将 awk、sed、cut、join 和 sort 的功能整合到一个专为结构化数据处理而构建的单一工具中。
- 是否用了中文引号:
“key”→ 必须是英文双引号"key" - 是否有单引号:
'name': 'zh'→ JSON 标准只接受双引号 - 是否带注释:
// lang或/* fallback */→ JSON 不支持任何注释 - 是否混入零宽字符(尤其从微信、PDF、邮件复制)—— 用正则
/[\u200b-\u200f\u202a-\u202f\u2060-\u206f\ufeff]/g全局替换为空
想让键名按字母排序,VSCode 原生做不到
内置格式化器只处理缩进和换行,不改变键顺序。要排序必须借助插件:
- 装
Sort JSON Keys(作者 huizhou.guo)或Sort JSON Objects - 全选对象内容(或把光标放在大括号内),按
Ctrl+Shift+P→ 输入Sort JSON Object Keys回车 - 注意:排序会打乱语义依赖(如
en必须在zh前),别对整个locale.json无脑全选
最常被忽略的一点:格式化前先确认语言模式和语法合法性,这两个条件不满足,所有快捷键和设置都是空转。










