必须将.sublime-build文件保存至Packages/User/目录且后缀为.sublime-build,文件名不能含空格或中文,内容须为合法JSON(双引号、无尾逗号、无注释),否则Build System菜单不显示。

Build System 菜单里看不到新创建的选项?检查文件位置和后缀
新建的 .sublime-build 文件必须放在 Packages/User/ 目录下才生效,其他路径(比如项目根目录、桌面、或 Packages/Default/)Sublime 一律忽略。Windows 用户路径通常是 %APPDATA%\Sublime Text\Packages\User\,macOS 是 ~/Library/Application Support/Sublime Text/Packages/User/。
- 用
Preferences → Browse Packages…打开目录,直接把文件拖进去最稳妥 - 文件名必须以
.sublime-build结尾,不能是.json、.txt或带隐藏后缀(如.sublime-build.txt) - 文件内容要是合法 JSON:字符串全用双引号,末尾不能有多余逗号,不能写注释
为什么 Ctrl+B 没反应或报 /bin/sh: python3: command not found?
根本原因是 shell_cmd 或 cmd 没指向真实可执行文件,或者没设对工作路径。Windows 上硬写 C:\Python39\python.exe 看似能用,但换台机器就失效;macOS/Linux 上只写 python3 又常因 PATH 不一致而失败。
- 跨平台推荐用
"shell_cmd": "python3 -u \"$file\""(注意双引号和转义) - Windows 用户若装了 Python Launcher(py),可用
"shell_cmd": "py -3.11 -u \"$file\"",但必须保证-u紧跟版本号,否则报unrecognized arguments - 需要指定工作目录时,加
"working_dir": "$file_path",否则相对导入或读取本地资源会失败 - 想验证实际执行的是哪个解释器,可在代码里加
import sys; print(sys.executable)
如何让 Python 和 TypeScript 文件自动匹配不同构建系统?靠 selector 控制触发范围
selector 不是文件扩展名过滤器,而是基于 Sublime 的语法高亮 scope 匹配。它决定“这个构建系统在哪些文件里显示为候选”,不是“能不能运行”。选错会导致菜单里一堆无关项,或该出现时不出现。
- 打开一个
.py文件,按Ctrl+Shift+P输入Syntax: Show Syntax,就能看到当前 scope,比如source.python - Python 构建系统写
"selector": "source.python",TypeScript 写"selector": "source.ts",互不干扰 - 要同时支持
.py和.ipynb(Jupyter),可用"selector": "source.python, text.html.jinja"(后者需确认实际 scope) - 删掉
selector字段会让它出现在所有文件类型菜单里,看着“万能”,实则每次都要手动排除
切换编译系统没有快捷键轮换?三种可靠操作方式
Sublime 不提供一键循环切换(比如 Ctrl+Alt+B 切下一个),但有明确优先级的切换路径,日常够用:
- 右键编辑器空白处 →
Build System→ 点击目标项(最快,尤其适合鼠标操作) - 菜单栏
Tools → Build System→ 勾选对应项(稳定,适合新手) - 快捷键
Ctrl+Shift+P→ 输入Set Build System→ 回车 → 选目标(键盘党首选,支持模糊搜索,比如输py3就能定位到Python3)
真正容易被忽略的是:切换只影响当前视图(tab),不是整个窗口或项目;如果开了多个 tab 且语言混杂,每个 tab 都得单独设一次构建系统。

















