default_syntax必须填完整大小写敏感的语法路径(如packages/python/python.sublime-syntax)才生效,且需重启sublime;new_file_content仅对ctrl+n有效,换行须用\n。

default_syntax 必须填对路径才能生效
Sublime 新建的 untitled 文件默认是 Plain Text,想让它一打开就带语法高亮,唯一可靠方式就是配 default_syntax。这个字段只在 Preferences → Settings – User(右侧用户设置)里起作用,且值必须是完整、大小写敏感的语法文件路径。
常见错误包括:default_syntaxes(多了一个 s)、default_syntac(拼错)、路径用简写如 JavaScript 或 JS —— Sublime 全部忽略。
-
"default_syntax": "Packages/Python/Python.sublime-syntax"(ST4 推荐) -
"default_syntax": "Packages/JavaScript/JavaScript.tmLanguage"(ST3 兼容,但 ST4 已不推荐) - 路径必须以
Packages/开头,不能有空格或中文,后缀必须是.sublime-syntax或.tmLanguage
查路径最稳的方式:先打开一个正确识别的 .py 文件 → 按 Ctrl+Shift+P 输入 Show Scope Name → 看状态栏显示 source.python → 对应路径基本就是 Packages/Python/Python.sublime-syntax。
改完配置必须重启才生效
很多用户改完保存就去按 Ctrl+N,发现还是 Plain Text —— 这不是配置错了,而是 Sublime 没重载语法绑定。ST4 对 default_syntax 的加载时机很严格,不重启不会生效。
验证是否成功:新建文件后右下角直接显示 Python(或你设的语言名),而不是 Plain Text;再按 Ctrl+Shift+P 输入 Set Syntax,当前高亮项应与你配置的完全一致。
如果仍无效,优先检查:
- JSON 格式是否合法(比如多了一个逗号、少了一个引号)
- 对应语法包是否被禁用(Preferences → Package Settings 里看 Python 插件是否启用)
- 是否有插件如
ApplySyntax在劫持新建逻辑(临时禁用测试)
new_file_content 只对 Ctrl+N 有效,且换行必须用 \n
想新建即带模板(比如 Markdown 前置声明),得配合 new_file_content 字段。但它只响应 Ctrl+N(Windows/Linux)或 Cmd+N(macOS),其他方式(菜单 New File、双击侧边栏空白)都不触发。
内容里换行必须写成 \n,Windows 用户别用 \r\n,否则会把 \r 当作普通字符显示出来。
示例(Markdown 模板):
"new_file_content": "---\ntitle: \"\"\ndate: \"\"\n---\n"
注意:new_file_content 不支持变量(如 ${date}),也不影响已保存文件或带扩展名的文件;要动态模板,得用插件如 FileTemplates。
default_syntax 只影响未保存的 untitled 文件
这个配置非常“专一”:它只管那些没路径、没内容、没扩展名的全新标签页。一旦你保存为 main.py,或者打开一个已有的 index.html,Sublime 就立刻切换成基于扩展名的自动匹配逻辑,default_syntax 完全不参与。
所以别指望它能让你双击项目里一个 .conf 文件时自动高亮为 YAML —— 那得靠 View → Syntax → Open all with current extension as… 单独设置,或者用插件如 ApplySyntax 写路径规则。
真正容易被忽略的一点是:如果你常开多个窗口,只重启当前窗口不够,得关掉所有 Sublime 进程再重开,否则旧进程缓存的语法绑定可能还在生效。











