Sublime右下角显示Plain Text说明未识别为JSON,需手动设置语法为JSON;格式化不响应多因Package Control未安装、插件未启用或未重启;JSON校验失败常因jsonlint路径未配置或输出格式不符;中文乱码和缩进问题源于编码(禁用BOM)、缩进设置及误用JS类格式化工具。

Sublime右下角显示Plain Text,格式化命令不响应
这不是插件没装好,是Sublime根本没把当前文件当JSON处理。所有格式化、校验功能都依赖语法作用域(source.json),状态栏显示Plain Text就等于开关关着。
- 点击右下角语言标识(如
Plain Text),手动选JSON(不是JSON with Comments,除非你真用了//注释) - 快捷键更稳:按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入Set Syntax: JSON回车 - 如果
JSON选项没出现,执行View → Syntax → Open all with current extension as… → JSON,把.json后缀全局绑定
装了Pretty JSON或JSON Reindent,但Ctrl+Alt+J没反应
命令面板搜不到、快捷键无效,90%是因为Package Control没装或插件没启用。Sublime不会自动加载插件,必须走完安装闭环。
- 先确认
Package Control存在:按Ctrl+Shift+P,搜Install Package——有就是已装;没有就得去官网复制Python脚本,粘贴进Ctrl+`控制台执行 - 装完插件后必须重启Sublime,否则插件列表不刷新,快捷键不注册
- 检查用户配置里有没有禁用插件:
Preferences → Package Settings → JSON Reindent → Settings – User,确保没写"enable": false
SublimeLinter-jsonc装了但不报错,或只报“1 error”没定位
插件只是调度器,真正干活的是jsonlint或node -p "JSON.parse(...)"。它找不到可执行命令,或者命令输出格式不对,就会静默失败或只给模糊提示。
- 终端运行
jsonlint --version,报command not found就说明路径没配对——别信全局npm install -g jsonlint,nvm或多版本环境下常失效 - 推荐项目本地装:
npm install jsonlint --save-dev,然后在SublimeLinter → Settings用户配置里加:{ "linters": { "jsonlint": { "executable": ["./node_modules/.bin/jsonlint"] } } }注意./是相对当前文件所在项目根目录,不是Sublime安装路径 - 若用
.jsonc文件,必须用SublimeLinter-jsonc插件,并在配置里加"selector": "source.json, source.jsonc",否则//注释直接被拒
格式化后中文变\u4f60\u597d或缩进错乱
这跟插件本身关系不大,是Sublime自身编码和缩进设置与插件解析逻辑打架。JS类插件(如JsFormat)会把JSON当JS字符串处理,UTF-8 BOM、混合空格/制表符、自动探测缩进都会触发异常。
- 文件编码必须是
UTF-8,不能是UTF-8 with BOM——BOM头会让解析器卡在第一个字节,连错误都不抛 - 执行
View → Indentation → Convert Indentation to Spaces,再设Indent Using Spaces宽度为2,且关闭detect_indentation(在用户设置里删掉或设为false) - 别用
JsFormat或JSBeautify处理纯JSON:它们会删反斜杠、转义中文、把null变成"null"——用Pretty JSON或ST4内置的Indent XML/JSON更安全
.jsonc当成.json用,这三类错误最常导致调试陷入死循环。


















