Sublime Text 新建空白文件自动使用指定语法需设置 default_syntax,值为完整路径如"Packages/Python/Python.sublime-syntax",仅对未保存的 untitled 文件生效,保存后或打开已有文件则按扩展名自动匹配。
Sublime Text 默认新建的 untitled 文件没有绑定任何语法高亮,每次都要
手动点右下角选「Plain Text」或「Python」等——这不是设计缺陷,而是它默认不预设语言类型。要跳过这一步,得靠修改用户配置中的 default_syntax 项。
关键点:这个设置只对「全新空白文件」(即没保存、没关联路径的 untitled)生效;一旦你保存为 .py 或打开已有文件,Sublime 会按扩展名自动匹配语法,不受此设置影响。
default_syntax 的值必须是完整语法定义路径,不是简单写 Python 或 Markdown
Packages/Python/Python.sublime-syntax(Sublime Text 4)或 Packages/Python/Python.tmLanguage(ST3)View → Syntax → Open all with current extension as... 确认目标语法的确切名称和位置别猜,也别去文件管理器里翻包——容易错。最稳妥的方式是用 Sublime 自带的命令面板实时获取:
按下 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS),输入并选择:Set Syntax: Plain Text(或其他你想设为默认的语法),然后立刻再执行:Copy Syntax Path(需提前安装插件 Syntax Highlighting Tools 或 PackageResourceViewer)。
如果没装插件,可临时打开一个已正确识别语法的文件(比如打开 test.py),再执行:Tools → Developer → Show Scope Name,顶部状态栏会显示类似:source.python meta.function.python,其中 source.python 就是语法作用域名,对应路径通常是:Packages/Python/Python.sublime-syntax。
打开 Sublime Text 的用户设置:Preferences → Settings – User,在右侧 JSON 配置块中添加或修改这一行:
{
"default_syntax": "Packages/Python/Python.sublime-syntax"
}
注意:
.tmLanguage,例如:Packages/Markdown/Markdown.tmLanguage
untitled 文件时触发)Preferences → Package Settings 里对应包是否被禁用)常见原因不是配置错,而是触发场景不对:
File → New File ✅(生效)Ctrl+N ✅(同上)default_syntax)subl 命令新建:subl -n ✅,但 subl 后跟路径或已有文件 ❌(此时按文件扩展名判断)Ctrl+N 可能复用当前语法(Sublime 的 tab 复用策略)真正起效的只有「纯粹的新建空白标签页」。如果需求更复杂(比如所有新文件都强制 Python,不管怎么打开),就得用插件如 DefaultFileSyntax 来接管事件钩子——但那已是另一层定制了。