sublimeonsavebuild是唯一稳定可靠的保存触发方案,需配合构建系统、语法标识、启用开关三者缺一不可:1.用package control安装;2.配置正确.sublime-build文件(cmd为数组、shell合理设置);3.在项目或插件设置中启用build_on_save。

SublimeOnSaveBuild 是唯一稳定可靠的保存触发路径
原生 Sublime 不支持保存即执行,硬改 on_post_save 或往 Preferences.sublime-settings 里塞配置都没用。真正能落地的只有插件方案,而 SublimeOnSaveBuild(注意不是已停更的 OnSave)是目前唯一持续维护、适配 Sublime 4 的选择。
安装后它不自动生效——必须配合构建系统(.sublime-build 文件)和显式启用开关。缺一不可。
- 用
Package Control: Install Package安装SublimeOnSaveBuild - 确保当前文件已绑定正确语法标识(右下角显示
source.python而非text.plain) - 确认右下角状态栏显示 “Build System: XXX”(不能是
None) - 项目级启用:在
Project → Edit Project中加"build_on_save": true - 全局启用(慎用):在
Preferences → Package Settings → SublimeOnSaveBuild → Settings中设"build_on_save": true
构建系统里 cmd 必须是数组,shell 决定能否用管道
写错 cmd 格式是最常见的失败原因。Sublime 要求它必须是数组,哪怕只跑一条命令:
{ "cmd": ["python", "$file"] }
写成字符串 "cmd": "python $file" 会静默失败。
shell 字段控制是否走 shell 解析器:
-
"shell": false(默认):直接调用二进制,不支持|、>、$PATH变量展开 -
"shell": true:启用 shell 环境,但需手动指定解释器,例如:["sh", "-c", "cat $file | prettier --write"] - Windows 用户若用
.bat或powershell,建议设"shell": true并用["cmd", "/c", "script.bat"]
PATH 不一致是 Mac/Linux 用户最常踩的坑
你在终端能跑 prettier,Sublime 却报 File not found: prettier——大概率是 PATH 不一致。Sublime 启动方式决定了它继承哪个 shell 的环境变量:
- 从 Dock 或开始菜单启动 → 继承 GUI 环境,通常不含
nvm或asdf注入的路径 - 从终端执行
subl .启动 → 继承当前 shell 的 PATH,最可靠 - 临时补救:在构建系统里加
"env": {"PATH": "/opt/homebrew/bin:/usr/local/bin:$PATH"}
别依赖 $PATH 自动拼接,Mac 上 Homebrew 默认路径是 /opt/homebrew/bin,不是 /usr/local/bin。
调试时不开 quiet: false 就等于盲操作
默认情况下,命令输出被丢弃,出错也看不到。调试阶段务必在构建系统中加:
"quiet": false
这样错误才会打到 Sublime 底部面板,比如:
-
ModuleNotFoundError: No module named 'black'→ 说明 Python 环境没装 black -
prettier: command not found→ PATH 问题或 prettier 没全局安装 -
Permission denied→ 脚本没执行权限(Linux/macOS 需chmod +x)
还有一个隐藏条件:如果文件刚从 UTF-8 with BOM 切换编码,Sublime 可能跳过保存钩子——先手动 Ctrl+S 一次再测。











