sublime build系统无反应主要因.sublime-build文件位置错误或json语法不规范;须置于packages/user目录下且严格遵循双引号、无尾逗号等json规则;跨平台需注意变量写法($file/%file%)、shell环境加载及路径空格处理。

Build系统没反应?先检查sublime-build文件位置和语法
Sublime 的 Build 系统不执行,90% 是因为 .sublime-build 文件没放对地方,或者 JSON 格式有隐性错误(比如末尾多逗号、单引号代替双引号)。它必须放在 Packages/User/ 目录下,且文件名以 .sublime-build 结尾,不能是 .json 或其他后缀。
- windows 路径:
%APPDATA%sublime textPackagesUser - macos 路径:
~/Library/Application Support/Sublime Text/Packages/User/ - linux 路径:
~/.config/sublime-text/Packages/User/ - 用
Preferences → Browse Packages…最稳妥,直接打开User文件夹 - JSON 必须严格双引号,
"cmd"不能写成'cmd';数组最后一项后面不能有逗号
想运行 Python 脚本但报错python: command not found?路径和 Shell 环境不一致
Mac/Linux 下常见:终端里能跑 python3,但 Sublime Build 里报错。这是因为 Sublime 启动时没加载你的 shell 配置(如 ~/.zshrc),找不到 python3 的路径。
- 别硬写绝对路径(比如
/usr/local/bin/python3),不同机器可能不一样 - 更可靠的做法是在
cmd中调用 shell 并显式加载配置:["sh", "-c", "source ~/.zshrc && python3 $file"] - Windows 用户注意:
cmd和PowerShell行为不同,用cmd时变量写法是%FILE%,不是$file -
shell设为true有时反而让环境更混乱,建议显式调用sh或cmd
cmd 里的变量怎么用?记住这四个最常用
Sublime Build 支持的变量不多,但用错一个就整个构建失败。它们只在 cmd 数组里生效,且大小写敏感、不能嵌套。
-
$file:当前文件完整路径(含扩展名),最常用 -
$file_path:文件所在目录路径,结尾不带/ -
$file_name:纯文件名(如main.py) -
$file_base_name:不带扩展名的文件名(如main) - Windows 下如果路径含空格,
$file会被自动加引号;但$file_path不会,需要手动包一层:"$file_path" - 别试图用
${file}或$(file)—— 这些都不认
为什么改了.sublime-build却看不到新选项?缓存没刷新
Sublime 不会实时监听 User 目录下的构建文件变更。改完保存后,菜单不会自动更新,得手动触发重建索引。
- 快捷键:
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入Build,选Set Build System → Automatic再切回来 - 或者关掉当前窗口再重开,强制重载
- 如果文件名拼错了(比如写成
python3.sublime-buid),Sublime 完全忽略它,也不会报错 —— 只是菜单里不出现 - 多个
.sublime-build文件同名(比如都叫Python.sublime-build)会导致覆盖,只认最后一个加载的
Sublime 的 Build 系统看着简单,但变量作用域、shell 环境隔离、路径空格处理这几个点,实际写的时候最容易卡住。尤其跨平台时,$file 和 %FILE% 混用、sh 和 cmd 切换不彻底,问题就藏得很深。