Sublime Text控制台是嵌入式Python解释器沙盒,非日志查看器或终端;必须手动启用Log Console Messages才能显示插件print()和红色traceback,Ctrl+`(不加Shift)或View→Show Console打开,干扰源包括输入法、远程工具和杀毒软件。

Sublime Text 的控制台不是“日志查看器”,它是插件运行的 Python 沙盒环境;不手动开开关,print() 和报错 traceback 都不会出现——你看到的空白,不是没出错,是被静默屏蔽了。
Ctrl + ` 打不开控制台?先确认按键和干扰源
Windows/Linux 下必须按 Ctrl + `(Tab 键正上方那个键,**不加 Shift**),macOS 是 Cmd + `。物理上 ` 和 ~ 是同一键:按住 Shift 输出 ~,松开 Shift 再按就是 `。
- 中文输入法(尤其是搜狗、微软拼音)激活时,会直接吞掉该组合键
- 远程工具(TeamViewer、ToDesk、RDP)或键盘增强软件(PowerToys、Logitech Options)常劫持
Ctrl + ` - 杀毒软件(如火绒、360)可能拦截快捷键转发
最稳兜底方式:菜单栏点击 View → Show Console,弹出后底部出现 >>> 提示符才算真正就绪。此时输入 print("test") 并回车,有输出即环境正常。
插件里写了 print() 却没日志?必须手动启用 Log Console Messages
print() 在 Sublime 插件中默认完全静默——它执行了,但输出被丢弃。控制台不会自动捕获插件 stdout,必须显式开启转发。
- 确保控制台已打开且底部有
>>> - 触发一次插件行为(比如保存文件、调用命令面板里的命令)
- 仍无输出?进菜单
Tools → Developer → Log Console Messages,勾选它
勾选后,所有 print()、sublime.status_message() 和未捕获异常都会实时刷出。注意:print() 不自动换行,连续调用会挤成一行,建议写成 print("debug:", x, "\n") 或 print(f"line {n}: {val}")。
看到红色 traceback 别关掉,那是最准的报错线索
控制台顶部突然刷出红色堆栈(Traceback),不是编辑器卡顿,而是插件在加载或运行时真实出错——它比任何文档都直接,且精确到行。
-
ImportError: No module named 'xxx':依赖缺失,或模块路径写错(比如import my_plugin.utils,但实际是my_plugin/Utils.py) -
AttributeError: 'NoneType' object has no attribute 'file_name':API 返回了None(如view.window()在无窗口上下文),却直接链式调用 -
NameError: name 'xxx' is not defined:变量名拼错、漏self.、或作用域不对
每条 traceback 最后一行都标出具体位置,例如 File "Packages/User/my_plugin.py", line 42,直接跳转修改即可。控制台不保存历史,关掉就丢;traceback 一闪而过,尤其启动期错误(插件加载失败)重启后就彻底消失,务必第一时间截图或复制。
构建报错双击不跳转?file_regex 没配对
Sublime 本身不解析错误输出,能否双击跳转,全看构建系统里 file_regex 是否能从错误文本中准确提取「文件路径」和「行号」。
- 现象:底部面板显示
main.js:42:15或File "utils.py", line 89,但双击无反应 - 检查路径:
Tools → Build System → New Build System…,确认 JSON 中有"file_regex"字段 - 常见有效正则:
匹配index.ts:287:12类型:"file_regex":"^(..[^:]*):([0-9]+):([0-9]+):? ?(.*)$"
匹配 Python 默认格式:"file_regex":"File \"([^\"]+)\", line ([0-9]+)"
注意:如果报错里路径是 /home/user/proj/utils.py,而你当前只打开了 utils.py(没带路径),Sublime 找不到对应标签页,也不会新建文件;另外,JS 压缩文件、Vue SFC 中的 <script> 块等场景,物理行号 ≠ 报错行号,需结合源码结构手动换算。


















