构建系统文件必须保存在packages/user/目录下,sublime text仅从此路径加载.sublime-build文件,其他位置均无效;需通过tools→build system→new build system…创建,保存时手动导航至该目录,文件名以.sublime-build结尾。

构建系统文件必须保存在正确路径下
Sublime Text 只会在特定目录里加载 .sublime-build 文件:Windows 是 %APPDATA%Sublime TextPackagesUser,macOS 是 ~/Library/Application Support/Sublime Text/Packages/User/,Linux 是 ~/.config/sublime-text/Packages/User/。新建构建系统后若没生效,八成是保存位置错了——别存到桌面或项目文件夹里,必须进 User 目录。
验证方式:菜单栏 Preferences → Browse Packages…,直接打开 User 文件夹,把文件拖进去再重命名(比如 Python3.sublime-build),重启 Sublime 或刷新构建系统列表(Tools → Build System → Refresh Projects)。
cmd 参数写错会导致“Unable to find python”或静默失败
常见错误是直接写 ["python", "$file"],但 Windows 上可能调用的是旧版 Python 2,或者根本没在 PATH 里;macOS/Linux 上可能找不到 python(只有 python3)。更稳妥的做法是:
- Windows 用户优先用
py -3.11或绝对路径,如["C:\Python311\python.exe", "-u", "$file"] - macOS/Linux 用户明确用
["python3", "-u", "$file"],避免歧义 - 加
-u参数强制无缓冲输出,否则 print() 可能卡住不显示 - 不要漏掉
"selector": "source.python",否则 Ctrl+B 在非 .py 文件里也会触发
示例(Python):
{
"cmd": ["python3", "-u", "$file"],
"file_regex": "^[ ]*File "(.+?)", line ([0-9]+)",
"selector": "source.python",
"encoding": "utf-8"
}
C++ 构建系统必须配 "shell": true 才能用 &&
想让 Sublime 先编译再运行(比如 g++ main.cpp -o main && ./main),光写 cmd 不够——默认是直接调用可执行文件,不走 shell,&&、|、; 都无效。必须显式加上 "shell": true,否则命令会报错或只执行前半段。
同时注意:
-
g++要提前装好并能从命令行调用(g++ --version成功) - Windows 下用
g++.exe,路径含空格时得加引号,但 JSON 里要转义:"cmd": [""C:\Program Files\mingw64\bin\g++.exe"", ...] - 加
-std=c++17等标准参数时,确保你的 g++ 版本支持(g++ -v查看)
中文输出乱码?不是编码设置单点问题
即使写了 "encoding": "utf-8",Windows 下跑 Python 还是可能输出方块字——根源在 Python 的 IO 编码层。必须配合环境变量 PYTHONIOENCODING:
{
"cmd": ["python3", "-u", "$file"],
"env": {"PYTHONIOENCODING": "utf-8"},
"encoding": "utf-8",
"selector": "source.python"
}
这个 env 字段不能省,它告诉 Python 解释器 stdout/stderr 用 utf-8 编码;而 encoding 是 Sublime 自己读取输出时的解码方式。两者缺一不可。
另外,如果脚本里有 input(),默认构建系统无法交互输入——这是 Sublime 的限制,不是配置问题。真要交互,得换用 SublimeREPL 插件或外部终端方案。











