新建文件默认为纯文本,需配置default_syntax才启用markdown等语法高亮;该设置仅对无扩展名且无内容的untitled文件生效,路径须为.sublime-syntax格式,第三方包需用对应路径,扩展名映射和applysyntax插件可实现更精准控制。

新建文件默认设为 Markdown 语法(或任意语言)
Sublime Text 不会自动根据文件名或内容推断语法,新建的 untitled 文件默认是纯文本(Plain Text)。想让它一创建就带 Markdown、Python 或其他语法高亮,必须靠配置触发。
核心方法是修改 Preferences.sublime-settings 中的 default_syntax,但注意:这个设置只对真正“无扩展名 + 无内容”的新建文件生效;一旦你敲了字符、保存为 .py 或粘贴了代码,Sublime 可能会按内容重判——所以它只是起点,不是万能锁。
实操步骤:
- 菜单栏 → Preferences → Settings,打开右侧用户设置面板
- 加入这一行(以 Markdown 为例):
"default_syntax": "Packages/Markdown/Markdown.sublime-syntax"
- 保存后,新按
Ctrl+N(Windows/Linux)或Cmd+N(macOS)建的空白文件,状态栏就会显示Markdown - 若要设为 Python:
Packages/Python/Python.sublime-syntax;JSON:Packages/JSON/JSON.sublime-syntax
为什么改了 default_syntax 还不生效?常见失效场景
最常踩的坑是路径写错或语法包不存在。Sublime 4 起全面转向 .sublime-syntax 格式,旧版 .tmLanguage 路径(如 Packages/Python/Python.tmLanguage)已无效,强行写会导致语法回退到 Plain Text,且控制台不报错。
验证语法路径是否正确:
- 菜单 → View → Syntax → Open all with current extension as…,选一个目标语法,看右下角显示的完整路径
- 或在命令面板(
Ctrl+Shift+P)输入PackageResourceViewer: Open Resource,逐级展开对应包,确认.sublime-syntax文件存在 - 如果用的是第三方语法包(如
MarkdownEditing),路径通常是Packages/MarkdownEditing/Markdown.sublime-syntax,不是官方那个
按文件扩展名自动关联(比 default_syntax 更可靠)
如果你经常新建文件后立刻保存为 .md、.py 等,与其依赖 default_syntax,不如直接配置扩展名映射——它优先级更高,且保存即生效。
操作位置:Preferences → Settings – Syntax Specific(注意:这是当前语法的专属设置,不是全局设置)
但更推荐做法是手动编辑语法映射文件:
- 菜单 → View → Syntax → Open all with current extension as… → Markdown(先切到 Markdown)
- 再点 Preferences → Settings – Syntax Specific,此时打开的是
Markdown.sublime-settings - 在里面加:
"extensions": ["md", "markdown", "mdown"]
- 这样,只要新建文件保存为
.md,哪怕之前是 Plain Text,保存瞬间就自动切语法
插件方案:ApplySyntax 适合复杂规则
当需求超出静态扩展名匹配(比如想让所有以 # 开头的 untitled 文件自动设为 Markdown,或根据第一行正则判断),ApplySyntax 插件是唯一实用选择。
它不改默认行为,而是在文件内容变化时动态重判,支持自定义规则:
- 安装后,在
Packages/User/ApplySyntax/rules/下新建my-rules.json - 写一条规则示例(匹配空文件+光标在首行):
{ "name": "Markdown for new files", "rules": [ { "file_name": "^untitled.*$", "contents": "^$" } ], "syntax": "Packages/Markdown/Markdown.sublime-syntax" } - 注意:
contents是正则匹配文件全文,^$表示空内容,比default_syntax更精准控制“仅限真正空白的新建文件”
这种规则容易被忽略的是:ApplySyntax 默认禁用对 untitled 文件的检测,需在主配置中显式开启 "enable_default_rules": true 并确保 "allow_empty_files" 为 true。











