default_syntax仅对Ctrl+N新建的无扩展名空白文件生效,需填完整路径如"Packages/Python/Python.sublime-syntax",重启后生效,且易受插件、JSON错误及大小写/空格等干扰。

直接改 default_syntax 就行,但必须写对路径、重启生效、且只管 Ctrl+N 新建的空白文件。
default_syntax 必须填完整路径,不能简写
Sublime 不认 JavaScript 或 Python 这种名字,只认以 Packages/ 开头的完整语法文件路径。写错一个字母、大小写不对、后缀用错(.tmLanguage vs .sublime-syntax),配置就静默失效。
- ST4 推荐用:
"default_syntax": "Packages/Python/Python.sublime-syntax" - ST3 可用:
"default_syntax": "Packages/JavaScript/JavaScript.tmLanguage" - 查真实路径最稳的方法:打开一个已正确高亮的
.py文件 →Ctrl+Shift+P→ 输入Show Scope Name→ 看状态栏显示source.python→ 对应路径基本就是Packages/Python/Python.sublime-syntax - 别手敲;误写成
Packages/python/python.sublime-syntax(小写)或Packages/Python/Python.sublime-syntax(末尾多空格)都会失败
改完不生效?先看这三处
这个设置看似简单,但实际生效链条很脆弱,常见卡点不是配置本身,而是环境干扰。
- 没重启 Sublime Text:部分版本不重启不加载新语法绑定,新建窗口也行,但仅新建标签页不够
- 插件劫持了新建逻辑:比如
ApplySyntax或AutoSetSyntax会拦截Ctrl+N,优先级高于default_syntax;临时禁用插件验证是否冲突 - JSON 格式错误:多一个逗号、少一个引号、用了中文标点,整个用户设置加载失败,Sublime 自动回退到默认行为;右下角仍显示
Plain Text就是典型信号
它只对“全新未保存”文件起作用
default_syntax 是个窄口径开关:只影响你按 Ctrl+N 创建的、没保存过、没路径、没扩展名的 Untitled 文件。其他场景它不管:
- 你打开一个已存在的
script.js,语法由扩展名决定,和default_syntax无关 - 你把一个
Untitled文件手动设为Python后又关闭没保存,下次再Ctrl+N,它仍走default_syntax - 你保存过一次的
Untitled-1,再新建时仍是全新 Untitled,不受历史影响 - 双击侧边栏空白、拖文件进窗口、菜单栏 New File —— 这些都不触发
default_syntax
想让不同后缀自动用不同语法?别动 default_syntax
这个字段是全局单值,没法做条件判断。要实现 .conf 用 INI、.env 用 ShellScript,得走另一套机制:
- 打开一个
.conf文件 → 点右下角语法名 →Open all with current extension as…→ 选INI,Sublime 会自动生成映射规则 - 或者手动在
Packages/User/Preferences.sublime-settings里加extensions映射,但syntax值仍需填完整路径,如:"syntax": "Packages/INI/INI.sublime-syntax" - 注意:这种映射只对带扩展名的文件生效,对
Ctrl+N新建的无扩展名文件无效
真正容易被忽略的是:default_syntax 和文件扩展名绑定是两套独立系统,前者只管“空”,后者只管“名”。混在一起想一劳永逸,反而哪边都配不稳。


















