Sublime需手动设置.json文件语法为JSON模式并安装对应插件实现高亮、校验与格式化:先通过右下角切换语法或配置文件关联,再安装JSON、SublimeLinter-json、Pretty JSON等插件,最后按配置层级(全局/项目/语法专属)正确设置参数。

怎么让 Sublime 正确识别 .json 文件的语法?
Sublime 默认不把 .json 当作独立语言类型,而是归到 JavaScript 里,导致高亮不准、括号匹配弱、无法校验。必须手动切换语法模式或配置文件关联。
- 打开任意
.json文件 → 点击右下角当前语言名(比如显示Plain Text或JavaScript)→ 在弹出菜单中选JSON - 若没看到
JSON选项,说明 JSON 语法包未启用:按Ctrl+Shift+P(macOS 是Cmd+Shift+P)→ 输入Install Package→ 安装JSON(官方内置包,无需额外下载) - 为避免每次手动切,可在用户设置中加自动映射:
{ "syntaxes": [ { "syntax": "Packages/JSON/JSON.sublime-syntax", "extensions": ["json", "sublime-settings", "sublime-keymap", "sublime-project"] } ] }但更稳妥的做法是直接在Preferences → Settings – Syntax Specific中为当前文件类型单独设"syntax": "Packages/JSON/JSON.sublime-syntax"
为什么改了 Preferences.sublime-settings 还不支持 JSON 格式化?
全局设置只控制编辑器行为,不提供 JSON 处理能力。格式化、校验、美化等操作依赖插件,不是开个开关就能用。
-
JSON Reindent是最轻量的选择:安装后对 JSON 文件执行命令面板里的JSON Reindent即可缩进对齐;但它不校验,也不自动保存时触发 - 需要实时报错?装
SublimeLinter-json(需先装SublimeLinter),它会在语法错误行标红波浪线,比如多逗号、缺引号、中文冒号 - 想一键美化+校验+自动保存?组合用
Pretty JSON插件,但注意它默认禁用保存时自动格式化,得进Pretty JSON.sublime-settings手动开"auto_format_on_save": true
.sublime-project 里怎么给项目配 JSON 相关行为?
项目级配置能覆盖全局,适合不同项目用不同 JSON 规则(比如有的要 2 空格缩进,有的强制 4 空格;有的禁用自动格式化,有的必须开启)。
- 在
settings块里加字段即可,例如:{ "folders": [{ "path": "." }], "settings": { "tab_size": 2, "translate_tabs_to_spaces": true, "ensure_newline_at_eof_on_save": true } } - 如果项目里大量用
.json5或自定义 schema,可以配合JSON Schema Validator插件,在.sublime-project里指定"json_schema": "./schema.json" - 注意:项目设置不会影响
.sublime-settings或.sublime-keymap文件本身的编辑体验——它们仍走全局语法规则,除非你在Settings – Syntax Specific单独配
常见 JSON 编辑翻车点,90% 都卡在这三处
不是插件没装好,而是编辑习惯和路径细节没对上。
- 用记事本或 VS Code 打开
Preferences.sublime-settings改完再拖回 Sublime?立刻失效。因为记事本会转全角引号、存 GBK 编码,Sublime 读取失败且不报错 -
color_scheme路径写成Dracula.sublime-color-scheme或./Dracula.sublime-color-scheme?必须是完整包路径,如"Packages/Dracula Color Scheme/Dracula.sublime-color-scheme" - 在
.sublime-keymap里加快捷键,但 command 名写成reindent_json?实际是json_reindent,大小写和下划线都得严丝合缝,拼错就静默忽略
真正卡住人的,从来不是“能不能做”,而是“在哪改”和“改完谁来认”。Sublime 的配置加载链很明确:用户设置 → 项目设置 → 语法专属设置 → 插件配置。每层覆盖关系不同,改错一层,就白调十分钟。











