Sublime Text项目构建系统需在.sublime-project中显式声明build_systems数组并指定完整路径,且通过settings中build_system字段设默认项;否则默认使用全局构建系统。

Sublime Text 里切换项目构建系统,不是“自动适配”,而是靠 .sublime-project 文件显式声明 build_systems 列表,并配合 Tools → Build System 手动选择——不配置就永远用默认项,哪怕你开了项目。
为什么项目里 Ctrl+B 还是跑错解释器?
因为 Sublime 不会根据当前打开的文件夹或项目结构自动换构建系统。即使你已保存了 myapp.sublime-project,它默认仍用全局设置(如 Python3.sublime-build),除非你在项目文件里明确写死可用的构建系统列表。
-
build_systems字段必须是数组,每个元素是带name和file的对象,file值格式为Packages/User/xxx.sublime-build(注意大小写和后缀) - 如果只写了
"build_systems": ["Python3"]这种字符串数组,Sublime 直接忽略——它只认完整路径引用 - 项目文件里没写
build_systems,就等于没授权任何构建系统给这个项目,菜单里显示的全是全局的,和项目无关
如何让项目一打开就默认选中某个构建系统?
靠 settings 下的 build_system 字段,值为对应构建系统的 name(不是文件名)。
- 先确认你的
Go-1.22.sublime-build文件里有"name": "Go-1.22"字段(没有就加上) - 在
myapp.sublime-project的settings里加:"build_system": "Go-1.22" - 这样每次用 Project → Open Project 打开该项目,
Tools → Build System菜单会高亮显示 Go-1.22,且 Ctrl+B 默认走它 - 注意:这个设置只对当前项目生效;其他项目得各自配各自的
build_system
项目构建系统不出现?先查这三处
常见现象是项目已加载,但 Tools → Build System 菜单里没看到你期望的选项——问题几乎都出在路径、命名或引用上。
-
.sublime-build文件必须放在Packages/User/下,Windows 路径是%APPDATA%\Sublime Text\Packages\User\,macOS 是~/Library/Application Support/Sublime Text/Packages/User/ -
.sublime-project中build_systems引用的file值,必须和磁盘上实际文件名完全一致(包括大小写、点号、数字),比如写成Packages/User/Go-1.22.sublime-build,就不能是go-1.22.sublime-build或Go-1.22.sublime-build.txt - 如果构建系统文件本身 JSON 有语法错误(比如末尾多逗号、用单引号包字符串),Sublime 会静默忽略它,既不报错也不显示——用 JSONLint 验证一下最省时间
真正容易被忽略的是:项目构建系统和全局构建系统是两套独立注册机制。你改了 .sublime-project 但没重启 Sublime,或者改了 .sublime-build 但没保存,都会导致“明明配了却不生效”。别信菜单名字,用 import sys; print(sys.executable) 或 go env GOROOT 实测输出路径,才是唯一验证标准。











