Ctrl + ` 是打开 Sublime 控制台的唯一可靠方式,所有插件日志、异常和 print 输出均实时显示于此;无日志文件,plugin_host 崩溃会导致 traceback 截断,启用 sublime.log_console_messages(True) 和 sublime.log_commands(True) 可获取更详细加载与安装日志。

按 Ctrl + ` 打开控制台是唯一可靠入口
Sublime 的插件日志不会写入文件,也不在系统日志里,所有运行时输出、异常 traceback、print() 调试语句,都只出现在控制台面板。很多人找“日志文件”白费时间,其实根本不存在——它就是实时滚动的 Python 输出流。
- 快捷键
Ctrl + `(反引号,Tab 上方)是唯一打开方式;macOS 同样适用,不是Cmd + Shift + P或其他组合 - 插件一出错,控制台会立刻停在 traceback 最后一行,重点看
File "./Packages/XXX/xxx.py"这类路径,它直接暴露问题插件和具体行号 - 如果控制台空空如也,说明插件根本没加载或没触发——这时要检查是否被禁用、路径损坏,或
plugin_host已提前崩溃(见下一条)
plugin_host 崩溃时控制台只显示半截 traceback
这是最典型的“日志突然中断”场景:你看到几行报错,然后控制台清空、插件功能失灵,甚至 Sublime 右下角弹出“plugin_host has exited unexpectedly”。这不是日志没输出,而是宿主进程崩了,输出被强行截断。
- 崩溃前最后一行往往是关键线索,比如
ImportError: No module named 'requests'或AttributeError: 'NoneType' object has no attribute 'view' - 不要只盯着报错,还要注意崩溃前是否有
reloading plugin XXX日志——这说明问题出在插件初始化阶段,而非运行中 - 若 traceback 里出现
sublime_api或_ssl.cpython等底层模块,大概率是插件用了不兼容的 Python C 扩展(尤其在 Sublime Text 4 下),得换纯 Python 实现的替代品
想看更细的日志?启用 log_console_messages
默认控制台只显示插件主动输出和未捕获异常,但有些问题藏在 Sublime 自身加载流程里,比如插件被跳过、设置没生效、命令注册失败。这时需要打开开发者日志开关。
- 在控制台输入并回车:
sublime.log_console_messages(True),之后所有插件加载、命令注册、事件监听都会打印出来 - 典型有用信息包括:
command 'some_plugin_command' is not defined(命令没注册成功)、ignored packages: ["SomePlugin"](插件被静默忽略)、reloading settings for SomePlugin(配置已重载) - 调试完务必关掉:
sublime.log_console_messages(False),否则日志刷屏影响日常使用
安装失败时控制台不报错?必须开 log_commands
Package Control 安装插件“无声失败”是最让人抓狂的情况:点了 Install Package、选了名字、没报错也没反应。这不是日志缺失,而是 Sublime 默认不记录安装过程的网络和文件操作。
- 在控制台执行:
sublime.log_commands(True),再重试安装,你会看到真实 HTTP 请求、解压路径、权限拒绝等细节 - 常见失败线索:
error: Package Control: Error downloading package……(代理或 channel 不可达)、IOError: [Errno 13] Permission denied(绿色版或自定义Packages目录权限不足) - 验证插件是否真落地:在控制台运行
import sublime; sublime.packages_path(),然后去该路径下手动检查对应文件夹是否存在,别信“List Packages”列表
真正卡住人的从来不是“怎么开日志”,而是日志开了却看不懂哪一行才是真正起点——比如 traceback 里上层是 Sublime 自己的 on_activated 回调,实际问题在你插件里一个被忽略的 view.window() 返回 None。这时候得顺着堆栈往上翻,而不是只盯最后一行。