直接修改 default_syntax 路径即可生效,但必须路径精确、json合法、sublime重启三者缺一不可;路径是内部语法文件全路径如 packages/python/python.sublime-syntax,非语言名或文件名。

直接改 default_syntax 就行,但路径必须精确、JSON 必须合法、Sublime 必须重启——缺一不可。
default_syntax 路径怎么写才对
它不是语言名,也不是文件名,而是 Sublime 内部语法文件的完整路径。写错一个字母或大小写就失效:
-
Packages/Python/Python.sublime-syntax✅(ST4 推荐) -
Packages/JavaScript/JavaScript.tmLanguage✅(旧版兼容) -
JavaScript❌(纯名字不认) -
Packages/javascript/JavaScript.sublime-syntax❌(javascript小写,实际是JavaScript)
最稳妥的办法:打开一个已正确高亮的文件 → 点右下角语法名 → 选 Open all with current extension as… → 看菜单里显示的全称,复制粘贴过去。
为什么改了没生效
常见失效不是配置错,而是被其他机制覆盖或中断:
- 用户设置 JSON 格式错误:多一个逗号、少一个引号,整个设置加载失败,Sublime 自动回退到 Plain Text
- 插件劫持:如
ApplySyntax或DefaultFileSyntax会忽略default_syntax,临时禁用它们验证 - 路径不存在:比如写了
TypeScript,但根本没装TypeScriptSyntax插件 - 没重启 Sublime:部分版本不重启不重载语法绑定逻辑
验证是否生效:新建文件后右下角应直接显示 JavaScript(或你设的语言),而不是 Plain Text;按 Ctrl+Shift+P 输入 Set Syntax,当前高亮项应与你配置一致。
new_file_content 只对 Ctrl+N 有效
想新建即带模板内容,得配 new_file_content,但它有硬性限制:
- 仅响应
Ctrl+N(Windows/Linux)或Cmd+N(macOS),双击侧边栏、拖入新标签页、菜单 New File 都不触发 - 换行必须用
\n,不能用\r\n,否则可能原样显示\r - 和
default_syntax是两套独立机制,必须同时配才完整
示例(Vue SFC 模板):"new_file_content": "<template>\n</template>\n\n<script setup>\n</script>\n\n<style scoped>\n</style>"
别指望 default_extension 或 default_encoding_on_save 控制高亮
这两个字段完全无关语法识别:
-
default_extension对新建文件无效,它只影响“另存为”时的默认后缀 -
default_encoding_on_save只控制保存时的编码(如"UTF-8"),不影响高亮
真正决定高亮的是 default_syntax 的路径是否可解析 + 是否被插件拦截 + 是否重启生效。其他字段再写一百行也盖不过这一条。











