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 连解析都失败了,自然不会格式化。重点检查:
使用约定式提交(Conventional Commits)生成标准化的 Git 提交信息。适用于以下场景: (1) 暂存更改时需要提交信息; (2) 审查 diff 时希望获得结构化摘要; (3) 编写 PR 描述或变更日志(changelog)条目; (4) 用户明确要求“为本次更改编写提交信息”。 该功能会分析已暂存/未暂存的 diff,并生成按类型(type)划分范围的提交信息。
- 是否用了中文引号:
“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无脑全选
最常被忽略的一点:格式化前先确认语言模式和语法合法性,这两个条件不满足,所有快捷键和设置都是空转。










