sublime构建系统必须通过tools→build system→new build system…创建并保存至packages/user/目录,文件名以.sublime-build结尾;cmd必须为数组格式,selector需匹配正确语法作用域如"source.python",否则无法触发。

Sublime 的构建系统文件不是“添加”进去的,而是必须手动创建并放在 Packages/User/ 目录下才能被识别——放错位置就等于没建,菜单里根本不会出现。
Tools → Build System → New Build System… 是唯一正确入口
别去文件管理器里新建 .sublime-build 文件再拖进 Sublime,也别用其他编辑器写好复制过去。必须通过菜单触发:
- 点击 Tools → Build System → New Build System…,这时会打开一个带默认结构的空白标签页,文件名显示为
untitled.sublime-build - 这个动作不只是新建文本,它还会让 Sublime 自动关联 JSON 语法高亮和基础校验
- 直接删掉默认内容,贴入你的配置(注意:缩进必须是空格,不能用 Tab;结尾不能有多余逗号)
- 保存时,务必点 File → Save As,路径手动导航到
Packages/User/目录下,文件名如Python3.sublime-build,后缀必须是.sublime-build
Windows 下 cmd 字段路径写错是静默失败主因
常见现象:Ctrl+B 没反应、输出面板空、或弹窗报 python: command not found。这不是 Python 没装好,而是 cmd 字段值不合法:
-
"cmd"必须是数组,哪怕只有一条命令,例如:["python", "-u", "$file"];写成字符串"cmd": "python -u $file"会完全失效 - Windows 绝对路径要双反斜杠转义,且整个路径用双引号包裹在数组元素内:
["C:\Users\name\AppData\Local\Programs\Python\Python311\python.exe", "-u", "$file"] - 别信
%PATH%或$PATH——Sublime 不解析这些 shell 变量;也别依赖py启动器,除非你确认where py在 CMD 里能输出路径 - 如果用
py,写法是:["py", "-3.11", "-u", "$file"],注意-u要跟在版本参数后面,否则报unrecognized arguments: -u
selector 写错导致 Ctrl+B 完全不触发
这个字段决定 Sublime 在什么文件类型下自动启用该构建系统。留空、拼错、或填了不存在的 scope,就会“选中了构建系统但按 Ctrl+B 没反应”:
- Python 文件对应的是
"selector": "source.python",不是python、.py或text.python - C++ 文件用
"selector": "source.c++, source.cpp"(多个 scope 用逗号空格分隔) - JS 文件是
"selector": "source.js",不是javascript - 不确定当前文件的 scope?按
Ctrl+Shift+P→ 输入Developer: Show Scope Name,光标处会显示完整 scope 链,取最末一段即可
中文乱码、错误不跳转、输出闪退这些都不是玄学
它们都对应具体可改的字段,而不是重装或调系统区域设置:
- 中文 print 出来是乱码或报
UnicodeEncodeError?加这两行:"encoding": "utf-8"和"env": {"PYTHONIOENCODING": "utf-8"} - 报错信息点了不跳转到对应行?检查
file_regex是否匹配实际输出格式,比如 Windows g++ 错误是main.cpp:5:10: error: ...,正则就得写成"file_regex": "^(.*?):([0-9]+):([0-9]+):?(.*)$" - 运行完窗口一闪而过?别用
cmd直接跑,改用variants加个终端变体,或者 Windows 下写:"shell_cmd": "start cmd /c "python -u \"$file\" & pause""(注意双引号转义) - 调试时黑盒执行?加
"quiet": false,输出面板会显示完整命令和环境信息,比猜强十倍
真正卡住人的从来不是语法怎么写,而是 Sublime 启动时加载的 PATH、工作目录、以及 selector 和当前文件 syntax scope 是否真正匹配——这些都不直接显示,只能靠 View → Show Console 看日志,或用 echo %PATH% / pwd 手动验证。











