双击文件仍用记事本打开,说明系统未正确关联Sublime;需在Windows设置中逐个指定文件类型默认应用,或在macOS执行subl --install并重启Finder;.pyw/.log显示Plain Text是因Sublime内部语法映射缺失,须通过右下角菜单设置“Open all with current extension as…”;Ctrl+N新建文件默认Python语法需配置"default_syntax",不支持自动添加.py后缀。

双击文件还是用记事本打开?先查系统默认设置是否真生效
Sublime Text 本身不控制“谁来打开它”,你在 Preferences → Settings 里改任何配置都对双击行为无效。双击仍跳去记事本或 VS Code,90% 是 Windows 或 macOS 没真正把 sublime_text.exe 或 subl 写进系统级文件关联。
Windows 必须进「设置 → 应用 → 默认应用 → 按文件类型指定默认应用」,挨个点开 .py、.log、.env 等条目,右侧图标点开后手动选中真实路径的 sublime_text.exe(不是 sublime_text.lnk 快捷方式);路径含空格时必须带英文双引号,例如:"C:\Program Files\Sublime Text\sublime_text.exe"。
macOS 若用 Homebrew 安装,常因未注册到 Launch Services 导致「显示简介 → 打开方式 → 全部更改」失效;必须先确保 subl 命令可用(运行 which subl),再执行 subl --install,最后重启 Finder(killall Finder)。
企业环境可能被组策略锁死,默认应用设置灰显——普通用户无权修改,得联系 IT。
.pyw / .log 打开了但右下角显示 Plain Text
这说明系统关联成功了(双击能启动 Sublime),但 Sublime 自己没把后缀和语法对上。这不是注册表或 Launch Services 的问题,是编辑器内部映射缺失。
正确做法分两步:
- 先用 Sublime 打开一个
.pyw文件 → 点右下角当前语法(如Plain Text)→ 选Python - 再点右下角 →
Open all with current extension as…→Python
该操作会写入 Packages/User/Extensions.sublime-settings,生成类似 "pyw": "Python" 的映射。同理处理 .log:打开一个 .log 文件 → 右下角选 Shell-Unix-Generic → 再触发 Open all with current extension as…。
别试图在全局 Preferences.sublime-settings 里硬加 extensions 字段——ST4 已废弃该写法,且不会生效。
Ctrl+N 新建文件怎么默认用 Python 语法并建议 .py 后缀
Sublime 不支持新建文件直接带 .py 后缀,但可通过绑定默认语法实现“视觉+保存行为一致”:新建即高亮为 Python,首次保存时自动弹出 untitled.py 建议。
打开 Preferences → Settings – User,添加这一行:
"default_syntax": "Packages/Python/Python.sublime-syntax"
注意大小写和路径拼写:Python 是 Packages/Python/Python.sublime-syntax,Markdown 是 Packages/Markdown/Markdown.sublime-syntax。
保存后需重启 Sublime 或新建一个窗口才生效。别碰 default_extension 设置项——它只影响你手动输入文件名但没写后缀时的补全(比如输 main 回车),对 Ctrl+N 完全无效。
想批量关联 .log/.conf/.env?别信一键工具,优先用系统命令
手动在 Windows 设置里逐个点 20 个后缀太累,但盲目改注册表风险高。更稳的方式是用管理员权限运行 CMD,执行:
assoc .log=SublimeText.LogFile<br>ftype SublimeText.LogFile="C:\Program Files\Sublime Text\sublime_text.exe" "%1"
关键点:
-
assoc绑定扩展名到自定义文件类型(如SublimeText.LogFile) -
ftype指定该类型由哪个程序打开,路径必须绝对、带引号、结尾有"%1" - 若安装的是便携版,路径要指向你解压的实际位置
macOS 上不能只靠图形界面,必须用终端写入 Launch Services 数据库:defaults write com.apple.LaunchServices/com.apple.launchservices.secure LSHandlers -array-add '{LSHandlerContentType=public.plain-text;LSHandlerRoleAll=com.sublimetext.4;}',再运行 lsregister -f /Applications/Sublime\ Text.app 强制刷新。
真正容易被忽略的是:语法映射和系统关联是两条完全独立的链路。哪怕你把所有后缀都设成 Sublime 打开,只要没做 Open all with current extension as…,打开后照样是 Plain Text。


















