双击文件未用Sublime打开,主因是系统未正确关联:Windows需在“默认应用→按文件类型指定”中手动选sublime_text.exe(路径含空格须加英文双引号);macOS需先执行subl --install注册Launch Services并重启Finder。

双击文件没走 Sublime,90% 是系统根本没记住你的选择——Sublime 自身设置对“谁来打开它”完全无效,必须动操作系统级配置。
Windows 上双击仍跳记事本?别在 Sublime 里瞎改 Settings
Sublime Text 的 Preferences.sublime-settings 里加任何 "extensions" 字段都没用,它不读这个。真正起效的只有两件事:
- 进「设置 → 应用 → 默认应用 → 按文件类型指定默认应用」,逐个点开
.py、.log、.env等条目 - 右侧图标点开后,手动浏览并选中真实的
sublime_text.exe(不是快捷方式.lnk) - 路径含空格(如
C:\Program Files\Sublime Text\sublime_text.exe)时,系统内部必须带英文双引号,否则注册表静默失败 - 如果某扩展名(如
.conf)没出现在列表里,先右键该文件 →「打开方式」→ 手动选一次 Sublime,它才会被系统识别并加入列表
macOS 上右键“全部更改”无效?缺 subl --install 这步
Homebrew 或官网拖拽安装的 Sublime,默认不注册到 Launch Services,Finder 根本不认识它。光点「全部更改」只是白忙活。
- 先确认
subl命令可用:which subl;若无输出,手动建软链接:sudo ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl - 再执行关键命令:
subl --install—— 这才是注册进 Launch Services 的唯一可靠方式 - 执行完必须重启 Finder:
killall Finder,否则关联不会真正写入数据库 - 如果
subl --install报错,检查Sublime Text.app是否重命名过,或是否放在非标准路径(如桌面、Downloads)
.pyw/.log 打开后显示 Plain Text?这是语法绑定问题,和系统无关
双击能启动 Sublime,说明系统关联成功;右下角写着 Plain Text,说明 Sublime 没把扩展名映射到对应语法高亮。这不是注册表或 Launch Services 的问题,是编辑器内部映射缺失。
- 先用 Sublime 打开一个
.pyw文件 → 点右下角Plain Text→ 选Python - 再点右下角 →
Open all with current extension as…→Python - 该操作会自动生成
Packages/User/Python.sublime-settings,内容类似:{"extensions": ["py", "pyw"]} - 别往全局
Preferences.sublime-settings里硬加"extensions"字段——Sublime Text 4 已废弃该写法,写了也不生效 - 想让
.log走Shell-Unix-Generic?同样流程:打开.log→ 右下角选Shell-Unix-Generic→ 再触发Open all with current extension as…
企业环境或组策略锁死?试试加右键菜单更现实
如果「按文件类型指定默认应用」页面灰显,说明组策略禁用了默认程序修改,普通用户无权改动。这时与其折腾系统设置,不如加个右键菜单更可控。
- Windows 下可手动写注册表项,在
HKEY_CLASSES_ROOT\*\shell下新建子项,指向sublime_text.exe "%1" - 注意命令行参数必须用
"%1"(不是%V),否则点击无响应 - macOS 不推荐用
defaults write LSHandlers手动写 UTI,容易匹配宽泛(比如public.plain-text会把所有纯文本都拉过去),反而干扰其他编辑器 - 路径大小写敏感:
Packages/User/INI.sublime-settings不能写成ini.sublime-settings,否则 Sublime 找不到上下文
最常被忽略的一点:系统关联和语法高亮是两套完全独立的机制。你可能已经把 .env 绑定给 Sublime 启动了,但只要没在 Sublime 里点过右下角的 Open all with current extension as…,它就永远显示 Plain Text。


















