sublime text 文件关联需分系统级打开方式和编辑器内语法高亮两步设置:windows须通过「设置→默认应用」逐项指定,macos必须运行subl --install并重启finder;语法高亮需在用户级python.sublime-settings等文件中配置extensions,而非全局preferences.sublime-settings。

Sublime Text 的文件关联不能靠改配置文件一劳永逸——系统级打开方式和编辑器内语法高亮是两套独立机制,硬改 Preferences.sublime-settings 里的 extensions 字段在 Sublime Text 4 中完全无效。
Windows 系统级关联必须走「设置 → 默认应用」,不是改 Sublime 配置
你在 Preferences.sublime-settings 里写 "extensions": ["py", "log"],双击 .py 文件照样跳记事本。因为 Windows 根本不读这个文件。
- 必须进「设置 → 应用 → 默认应用 → 按文件类型指定默认应用」
- 逐个点开
.py、.log、.env等条目,右侧点击图标 → 「选择其他应用」→ 手动浏览到sublime_text.exe - 路径含空格(如
C:\Program Files\Sublime Text\sublime_text.exe)时,系统内部必须用英文双引号包裹,否则注册表静默失败 - 如果某扩展名(如
.conf)没出现在列表里,先右键该文件 → 「打开方式」→ 选一次 Sublime,它才会被系统识别并加入列表
macOS 必须运行 subl --install,不是改配置或拖拽设置
在 Finder 右键 → 「显示简介」→ 「打开方式」选 Sublime → 「全部更改」,看起来设好了,但重启 Finder 后又失效?大概率是 Launch Services 根本没注册 Sublime。
- 先确认
subl命令可用:终端运行which subl,有输出才继续 - 若无输出,手动建软链接:
sudo ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl - 执行
subl --install—— 这步不可跳过,也不是可选项 - 执行完立刻运行
killall Finder,否则关联不会真正写入数据库
语法高亮绑定要改用户级语法配置,不是全局 Preferences.sublime-settings
双击能启动 Sublime,但右下角写着 Plain Text,说明系统关联成功,而 Sublime 自己没把后缀和语法对上。这不是注册表或 Launch Services 的问题。
- 打开一个
.pyw文件 → 点右下角Plain Text→ 选Python→ 再点右下角 →Open all with current extension as…→Python - 该操作会生成
Packages/User/Python.sublime-settings,内容类似:{"extensions": ["py", "pyw"]} - 想让
.log和.env都走INI语法?编辑Packages/User/INI.sublime-settings,加一行:"extensions": ["log", "env", "conf"] - 文件名大小写敏感:
INI.sublime-settings≠ini.sublime-settings,写错就无效
别碰 Preferences.sublime-settings 里的 extensions 字段
几乎所有网上教程教你在全局设置里加 "extensions" 映射,这在 Sublime Text 4 中已废弃。你改了,保存了,重启了,它就是不生效——不是你操作错,是 Sublime 根本不读这一项。
- Sublime 只从语法包自身的
file_extensions列表,或用户级*.sublime-settings(如Python.sublime-settings)里读扩展名映射 - 优先级顺序:
语法包内 file_extensions > 用户级 *.sublime-settings > 右下角临时设置 - 插件(如 Log Highlighter)自带的
log.sublime-syntax可能覆盖你的设置,得禁用或删掉它
最易忽略的点:系统级关联和语法高亮是解耦的,必须分两步做;且 macOS 下 subl --install 和 killall Finder 缺一不可,少一步都会“看起来设好了,其实没生效”。











