windows需通过系统默认应用设置手动关联文件类型至sublime真实路径,并验证注册表hkey_classes_root\.log及对应shell命令值;macos须运行subl --install注册launch services;sublime内语法识别需修改语法包file_extensions而非用户设置。

Windows 下双击仍用记事本打开,不是 Sublime 设置问题
系统没把关联写进注册表,Sublime 的 Preferences.sublime-settings 里改任何东西都无效。你点过“始终使用”,但 HKEY_CLASSES_ROOT\.log 的默认值可能还是空的,或者指向了 sublime_text.lnk 而非真实可执行文件。
必须进「设置 → 应用 → 默认应用 → 按文件类型指定默认应用」,挨个点开 .log、.env、.pyw 等条目,右侧图标点开后手动选中:"C:\Program Files\Sublime Text\sublime_text.exe"(注意英文双引号不能少,路径含空格时缺引号会静默失败)。
验证是否生效:打开注册表编辑器,检查两处:
-
HKEY_CLASSES_ROOT\.log右侧「默认」值是否为类似SublimeText.LogFile的字符串 -
HKEY_CLASSES_ROOT\SublimeText.LogFile\shell\open\command的数据项是否为"C:\Program Files\Sublime Text\sublime_text.exe" "%1"
macOS 上 .env/.conf 双击不走 Sublime,subl --install 是唯一解
Homebrew 安装的 Sublime 默认不注册到 Launch Services,“显示简介 → 全部更改”只是表面操作,重启 Finder 后就失效。这不是权限或路径问题,是 macOS 根本不知道 subl 能处理哪些文件类型。
先确保 subl 命令可用:
- 运行
which subl,若报错,执行:sudo ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl - 再运行:
subl --install(不是subl --install-shell-commands) - 立刻执行:
killall Finder,否则 Launch Services 缓存不刷新,“全部更改”不会真正写入
别用 defaults write LSHandlers 手动注册 UTI——public.plain-text 这种泛型会覆盖你的意图,反而让其他编辑器也失效。
.pyw/.log 打开后显示 Plain Text,和系统关联完全无关
双击能启动 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"]}。别往全局 Preferences.sublime-settings 里硬加 extensions 字段——ST4 已废弃该字段,且完全不读取。
想让 .log 自动高亮为 Shell-Unix-Generic?得改语法包本身
内置语法包 Shell-Unix-Generic.sublime-syntax 默认只认 .sh、.bash 等,不包含 .log。即使你通过右下角菜单绑定了 .log 到该语法,新建文件或保存时仍可能掉回 Plain Text。
根本解法是追加扩展名到语法包的 file_extensions 列表:
- 菜单 →
Tools→Developer→View Package File→ 找到并打开Shell-Unix-Generic/Shell-Unix-Generic.sublime-syntax - 找到
file_extensions:行,在其列表末尾加上- log(注意 YAML 缩进) - 保存后重启 Sublime,
.log文件新建、打开、保存都会稳定识别为 Shell-Unix-Generic
优先级顺序是:语法包内 file_extensions > 用户级 *.sublime-settings > 右下角临时设置。很多人卡在第三层,却没意识到第一层才是源头控制点。











