Build面板输出仅为一次性快照,不保存、不导出、无API访问;可靠日志需通过构建系统配置shell重定向(如"cmd": ["python", "-u", "$file", ">", "output.txt"], "shell": true)写入磁盘文件。

Build 面板里的输出不是日志,关掉就丢
Sublime Text 的 Build 面板(Ctrl+B 弹出的底部区域)**不保存、不导出、也不提供 API 访问**——它只是 stdout/stderr 的一次性快照。你看到的内容在面板关闭、切换构建系统或重启 Sublime 后全部清空。右键菜单里没有 “Save Output As…” 选项,这不是隐藏了,是根本不存在。
想“保存日志”,必须让程序自己写文件,不是靠 Sublime
所有可靠方案都绕过 Build 面板,转而通过构建系统配置 + shell 重定向,把输出导向磁盘文件。关键点只有三个:
-
"shell": true必须显式启用,否则>、>>会被当作 Python 参数传入,报错如TypeError: main() takes 0 positional arguments -
-u参数必须加在cmd中,禁用 Python 输出缓冲,否则带print()+time.sleep()的脚本会延迟落盘甚至卡住 - 路径用相对名(如
output.txt)默认写入当前文件所在目录;跨平台时注意斜杠:Windows 用C:\path\out.txt,macOS/Linux 用/path/out.txt
常见配置示例:
"cmd": ["python", "-u", "$file", ">", "stdout.log", "2>", "stderr.log"]
"cmd": ["python", "-u", "$file", ">>", "run.log"]
插件报错和 print() 看不到?那是控制台日志开关没开
Sublime 默认屏蔽插件中所有 print() 和未捕获异常的输出。即使你写了 print("debug") 或代码真抛了 AttributeError,控制台也一片空白。
- 先按
Ctrl + `(不是Ctrl + Shift + `)打开控制台;若无效,用菜单View → Show Console - 触发插件行为(比如保存文件、执行命令)
- 仍无输出?进菜单
Tools → Developer → Log Console Messages,勾选它 -
print()不自动换行,建议写成print("debug:", x, "\n")避免日志挤成一团
看到红色 Traceback 别跳过——最后一行精确标出文件路径和行号,例如 File "Packages/User/my_plugin.py", line 42,直接跳转就能改。
需要实时滚动日志?Build 面板根本不支持
如果你要跑 flask run、npm start 这类长时服务,Build 面板完全不合适:它不支持输入、不能 Ctrl+C 中断、也不支持异步回调输出。此时该用 Terminus 插件:
-
Ctrl+Shift+P→ 输入Terminus: Open Default Shell in Panel - 在面板中直接运行
python manage.py runserver,日志实时刷新 - 想导出?终端里选中文字 → 右键
Copy,或用tail -f app.log | tee /dev/tty同时屏显+落盘
真正难的不是怎么配,而是分清场景:Build 面板只适合单次、短时、无交互的命令;所有“持续”“可中断”“需导出”的需求,都得绕开它。











