windows需在“设置→默认应用→按文件类型指定”中手动绑定.py/.txt等扩展名到sublime_text.exe绝对路径;macos需运行subl --install注册launch services并刷新缓存;.pyw高亮需在sublime内执行“open all with current extension as…→python”。

Windows 上设 .py/.txt 默认打开却还是用记事本?系统没真认 Sublime
不是 Sublime 没配好,是 Windows 根本没把关联写进底层。右键选了“始终使用”,界面勾了,但注册表或默认应用列表里压根没更新——这是最常见假成功。
- 必须进 设置 → 应用 → 默认应用 → 按文件类型指定默认应用,挨个点开
.py、.txt、.json等条目,确认右侧图标指向的是真实的sublime_text.exe(不是sublime_text.exe.lnk快捷方式) - 路径必须是绝对路径且双反斜杠,例如:
"C:\Program Files\Sublime Text\sublime_text.exe";少一个反斜杠或引号不闭合,注册表就失效 - 企业环境或某些 OEM 系统可能被组策略锁定,默认应用设置灰显,普通用户无权改——这时右键加菜单才是唯一可行方案
macOS 上 subl 命令失效或双击不响应?Launch Services 没注册
Homebrew 安装的 Sublime 常见问题:命令行能运行 subl,但 Finder 双击文件仍跳 VS Code 或 Atom——因为 Launch Services 不知道 subl 是谁。
- 运行
subl --install(不是subl --install-shell-commands),它会向 Launch Services 注册文件类型处理能力 - 若提示 “command not found”,说明
subl未加入 PATH;检查是否执行过ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl - 注册后仍不生效?在终端运行
lsregister -f /Applications/Sublime Text.app强制刷新缓存
想让 .log/.conf/.env 全部用 Sublime 打开,但不想一个个点?别信“一键全关”工具
批量改注册表或用第三方工具(如 Default Programs Editor)确实快,但风险在于:它们常把 .exe、.dll 也拉进来,导致系统异常。安全做法是只动关键几处。
- 真正起效的注册表路径只有两个:
HKEY_CLASSES_ROOT.log的默认值(设为SublimeText.File),以及HKEY_CLASSES_ROOTSublimeText.Fileshellopencommand的数据(填"C:\Program Files\Sublime Text\sublime_text.exe" "%1") - 推荐用
.reg脚本导入,内容仅含这两行,路径提前验证无误再双击运行 - 更稳妥的替代方案:加右键菜单。新建
sublime_context.reg,导入后右键任意文件空白处就有“用 Sublime 打开”,支持%1(单文件)和%V(文件夹路径)
双击打开了,但 .pyw 显示为 Plain Text?语法高亮和系统关联完全无关
系统决定“谁来打开”,Sublime 决定“怎么显示”。哪怕你把 .pyw 设成全世界最优先的默认程序,它默认仍是纯文本——除非你告诉 Sublime 这是 Python。
- 打开一个
.pyw文件 → View → Syntax → Python → 再点 View → Syntax → Open all with current extension as… → Python - 该操作会写入
Packages/User/Python.sublime-settings,下次所有.pyw自动高亮 - 如果没看到
Open all with current extension as…菜单项,说明当前文件还没被识别为可映射类型,先手动选一次语法再触发
最容易被忽略的是:系统级关联和编辑器内部语法映射是两套独立机制,改错地方就白忙。很多人折腾半天注册表,结果发现只是 Sublime 里漏点了那一句 Open all with current extension as…。











