JSON文件专属设置必须通过JSON.sublime-settings实现,而非修改Preferences.sublime-settings–User中的tab_size或translate_tabs_to_spaces;需打开.json文件→确认右下角显示“JSON”→Preferences→Settings–Syntax Specific,编辑生成的JSON.sublime-settings,写入"tab_size": 2、"translate_tabs_to_spaces": true、"detect_indentation": false三行,并确保语法名大小写精确匹配。

JSON文件专属设置必须走 JSON.sublime-settings,不是全局配置
改 Preferences.sublime-settings – User 里的 tab_size 或 translate_tabs_to_spaces 对 .json 文件基本没用——JSON 语法包自带硬编码的默认值,优先级高于用户全局设置。真正生效的路径只有一条:打开一个 .json 文件 → 确保右下角状态栏显示的是 JSON(不是 Plain text 或 JavaScript)→ 菜单选 Preferences > Settings – Syntax Specific,这时会生成或打开 Packages/User/JSON.sublime-settings。
JSON.sublime-settings 里该写什么?关键就这三行
这个文件内容必须是合法 JSON,且只覆盖你关心的行为。常见组合如下:
-
"tab_size": 2—— JSON RFC 推荐缩进为 2,别用 4; -
"translate_tabs_to_spaces": true—— 输入 Tab 时自动转空格,避免混用; -
"detect_indentation": false—— 关闭自动探测,否则打开已有文件时会被原始缩进覆盖你设的值。
示例完整内容:
{
"tab_size": 2,
"translate_tabs_to_spaces": true,
"detect_indentation": false
}
注意:不要删掉已有字段(如果文件非空),只增补或修改;保存后已打开的 JSON 文件需手动按 Ctrl+Shift+P → 输入 Reload Syntax 才刷新生效。
格式化 JSON 不是靠设置,而是靠插件 + 正确配置
单纯改 JSON.sublime-settings 只影响编辑时的缩进行为,不提供“一键美化”功能。要格式化杂乱 JSON,得装插件,但必须配对:
- 装
HTML-CSS-JS Prettify(别选Pretty JSON,它在 ST4 上常因 Python 环境报错); - 确认插件设置中
"json": true已启用; - 在插件配置里明确写
"indent_size": 2和"detect_indentation": false; - 确保当前文件编码是
UTF-8(不是UTF-8 with BOM),否则格式化会静默失败。
快捷键建议单独绑定,比如在 Preferences > Key Bindings – User 中加:
[{"keys": ["ctrl+alt+j"], "command": "html_css_js_prettify", "args": {"type": "json"}, "context": [{"key": "selector", "operator": "equal", "operand": "source.json"}]}]
容易被忽略的陷阱:语法名大小写和空格必须严丝合缝
Sublime 内部识别的语法名是精确字符串,JSON.sublime-settings 这个文件名不能写成 json.sublime-settings、Json.sublime-settings 或 JSON_settings.sublime-settings。同样,如果你点右下角切的是 JSON (TextMate),那它实际加载的是另一个语法,对应配置文件也不同。最稳妥的做法是:打开任意 .json 文件 → Ctrl+Shift+P → 输入 Set Syntax Specific Setting → 回车 → 选 JSON,这样保证路径和语法名完全匹配。


















