default_syntax仅对未保存、无路径、无扩展名的ctrl+n新建untitled文件生效,需配置完整大小写敏感路径如"packages/python/python.sublime-syntax",拼写错误、路径无效、json非法或插件禁用均导致静默失效。

default_syntax 只对新建的 untitled 文件生效
它不改已保存文件、不改打开的 .py 或 .ts,只管你按 Ctrl+N 新建却还没存盘的那个空白页。验证是否生效:重启 Sublime → 新建窗口 → 按 Ctrl+N → 看右下角是不是立刻显示 Python/JavaScript,而不是 Plain Text。
常见失效原因:
-
default_syntax拼错成default_syntac或default_syntaxes,Sublime 直接跳过整行,不报错 - 路径写成
Packages/Python/Python.tmLanguage(ST4 已弃用),应为Packages/Python/Python.sublime-syntax - 大小写错误:比如
packages/python/python.sublime-syntax或Packages/Python/python.sublime-syntax都不认 - 用户设置 JSON 格式非法(多逗号、少引号、中文标点),整个配置加载失败,回退到默认行为
extensions 是让 .log/.env 自动高亮的唯一正解
default_syntax 管不了带扩展名的文件。.log 默认是 Plain Text,是因为 Sublime 根本没把 log 映射到任何语法——得靠 extensions 字段手动绑定。
正确操作流程:
- 先用 Sublime 打开一个
.log文件 - 点右下角 “Plain Text” → 选 Shell-Unix-Generic(或 INI/YAML,依内容而定)
- 再点右下角 → Open all with current extension as… → 确认选同个语法
这会在 Packages/User/Preferences.sublime-settings 里自动加一段:
"extensions": ["log", "env"], "syntax": "Packages/ShellScript/Shell-Unix-Generic.sublime-syntax"
注意:extensions 列表里写 "log",不是 ".log";syntax 值必须是完整路径,大小写敏感,且不能有空格或中文。
语法专属设置(如缩进)要走 Settings – Syntax Specific
想让 Python 用 4 空格、JavaScript 用 2 空格,不能在全局设置里硬塞,得为每种语法单独配。操作路径:打开一个 .py 文件 → 确保右下角显示 “Python” → Preferences → Settings – Syntax Specific。
这时打开的是 Python.sublime-settings,填入:
{
"tab_size": 4,
"translate_tabs_to_spaces": true,
"detect_indentation": false
}
关键点:
- 这个文件只影响
source.python作用域的文件,不会波及其他语法 - 保存后立即生效,无需重启
- 如果右下角显示的是 “JSON” 而不是 “Python”,那当前文件没被识别为 Python,设置不会加载
查语法路径别手敲,用 Show Scope Name 实时确认
凭印象写 Packages/TypeScript/TypeScript.tmLanguage 很容易错——ST4 里这路径根本不存在,Sublime 静默忽略,不提示也不报错。
稳的方法:
- 打开一个已正确高亮的
.ts文件(比如你自己写的) - 按
Ctrl+Shift+P→ 输入并执行Show Scope Name - 看状态栏显示类似
source.ts或source.typescript - 把点换成斜杠,补上前缀:
Packages/TypeScript/TypeScript.sublime-syntax
如果状态栏显示 text.html.markdown,说明你装了第三方 Markdown 插件,路径可能是 Packages/MarkdownEditing/Markdown.sublime-syntax,得进对应插件目录确认。
最常被忽略的一点:即使 default_syntax 和 extensions 都配对了,如果用户设置里有 "ignored_packages": ["TypeScript"] 这类项,对应语法包被禁用,路径再准也没用。











