需分两步修复:先在Windows设置中为每个文件类型手动指定Sublime Text真实路径(带英文双引号),再在Sublime内为对应后缀手动绑定语法;macOS需运行subl --install注册并killall Finder,语法绑定同Windows。

Windows 双击文件仍用记事本打开,怎么 fix?
这不是 Sublime 的设置问题,是 Windows 没把关联写进注册表。你在「设置 → 默认应用」里点了“始终使用”,但系统可能只更新了界面,没真正改注册表项。
必须进「设置 → 应用 → 默认应用 → 按文件类型指定默认应用」,逐个点开 .pyw、.log、.env 等条目,右侧图标点开后手动选中真实的 sublime_text.exe(不是 sublime_text.lnk 快捷方式)。
- 路径含空格时,必须带英文双引号,例如:
"C:\Program Files\Sublime Text\sublime_text.exe"——少一个引号或反斜杠,注册表静默失败 - 验证是否生效:打开注册表编辑器,定位到
HKEY_CLASSES_ROOT\.pyw,看右侧「默认」值是否为类似SublimeText.File的字符串;再查HKEY_CLASSES_ROOT\SublimeText.File\shell\open\command,确认数据项指向带引号的完整路径 - 企业环境被组策略锁死时,默认应用设置灰显,普通用户无法修改,只能联系 IT 或改用右键菜单方案
macOS 上 .env、.conf 双击不走 Sublime?
Homebrew 安装的 Sublime 默认不注册到 Launch Services,“显示简介 → 打开方式 → 全部更改”基本无效,必须补注册。
- 先确保
subl命令可用:运行which subl,若报错,执行ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl - 运行
subl --install——注意不是subl --install-shell-commands,这是向 Launch Services 注册文件处理能力的唯一可靠命令 - 立即执行
killall Finder,否则“全部更改”不会真正写入数据库 - 别用
defaults write LSHandlers手动写 UTI:macOS 的public.plain-text泛型会覆盖你的意图,反而干扰其他编辑器
.pyw 打开了却显示 Plain Text,怎么绑语法?
系统已成功把文件交给 Sublime(双击能启动),但 Sublime 自己不认识这个后缀——这是内部语法映射缺失,和注册表/Launch Services 完全无关。
- 打开一个
.pyw文件 → 点右下角当前语法(如Plain Text)→ 选Python - 再点右下角 →
Open all with current extension as…→Python(注意:必须先手动选一次语法,该菜单项才出现) - 同理处理
.log:打开一个.log文件 → 右下角选Shell-Unix-Generic→ 再触发Open all with current extension as… - 该操作会写入
Packages/User/Python.sublime-settings,生成类似"pyw": "Python"的映射 - 别试图在全局
Preferences.sublime-settings里硬加extensions字段——ST4 已废弃该写法,且不会生效
想让 .env、.conf 都走 INI 语法,怎么批量设?
不能靠全局配置,得进对应语法的用户配置文件。不是改 Preferences.sublime-settings,而是找到 Packages/User/INI.sublime-settings(若不存在,先用上面方法设一次 .ini 文件触发生成)。
- 在里面加一行:
"extensions": ["env", "conf", "ini"],保存即可 - 注意:这个文件名必须和语法名完全一致(
INI不是Ini,也不是ini),否则 Sublime 找不到上下文 - 如果用了插件(比如 Log Highlighter),它自带的
log.sublime-syntax可能覆盖你的设置,得删掉或禁用 - 路径大小写敏感:
Packages/Text/Plain text.tmLanguage不能写成plain text.tmlanguage


















