ctrl + (windows/linux)或 cmd + (macos)是打开sublime控制台的正确快捷键,需确保输入法关闭、无远程工具或安全软件拦截;若失效,可通过view → show console打开;print()输出需手动启用tools → developer → log console messages;报错traceback是定位插件问题的第一手线索;排查安装失败需先执行sublime.log_commands(true)。

Ctrl + ` 才是打开控制台的正确快捷键
绝大多数人卡在第一步:按了 Ctrl + ~ 或 Ctrl + Shift + `,控制台没反应——其实正确组合键是 Ctrl + `(Windows/Linux)或 Cmd + `(macOS),` 是 Tab 键正上方那个键,**不加 Shift**。
键盘上找不到 `?试试按住 Shift 看是否输出 ~;若输出,那不加 Shift 就是 `。
快捷键失效的常见原因:
- 中文输入法处于激活状态(尤其搜狗、微软拼音)
- 远程桌面工具(如 TeamViewer、ToDesk)劫持了该热键
- 杀毒软件或键盘增强工具(如 PowerToys)占用了组合键
最稳兜底方式:菜单栏点击 View → Show Console(注意不是 Tools 或 Developer 下)。
成功打开后底部会显示 >>> 提示符,此时可直接输入 print("test") 测试是否就绪。
插件 print() 没输出?必须手动开启日志开关
写了 print("debug") 却看不到任何内容,不是插件没运行,而是 Sublime 默认屏蔽所有插件的 print() 输出。控制台本身不会自动捕获这些日志,必须手动启用。
操作步骤:
- 确保控制台已打开(
Ctrl + `) - 触发插件行为(比如保存文件、调用命令)
- 仍无输出?进菜单:
Tools → Developer → Log Console Messages,勾选它
勾选后,插件中所有 print()、sublime.status_message() 和未捕获异常都会实时刷出。
小技巧:print() 不自动换行,多条日志容易挤成一团,建议写成 print("debug:", var, "\n")。
看到 traceback 别慌,那是最该盯住的第一手线索
控制台顶部刷出红色报错堆栈(Traceback),不是“编辑器卡了”,而是插件启动或运行时真出错了——这是定位问题最快的方式。
典型现象:
- 插件刚加载就崩溃:启动时出现
SyntaxError或ImportError,说明代码有语法问题或依赖缺失 - 执行某命令时报错:比如
AttributeError: 'NoneType' object has no attribute 'file_name',说明某个 API 调用返回了None - 中文路径/文件名导致
UnicodeDecodeError:常见于构建系统或文件读写逻辑中未指定编码
别跳过 traceback 最后一行——那里明确写着错误类型和位置,比如 File "Packages/User/my_plugin.py", line 42,直接跳转到对应行即可开始修复。
排查插件安装失败?先开 sublime.log_commands(True)
Package Control 显示 There are no packages available for installation,或者安装后 Package Control: List Packages 里找不到,光看控制台一片空白?那是因为默认日志级别太低,连 HTTP 请求都过滤掉了。
必须手动启用命令级日志:
- 打开控制台(
Ctrl + `) - 输入并回车:
sublime.log_commands(True) - 再执行一次
Package Control: Install Package
你会看到类似这样的真实线索:
command: package_control_install_package {"package": "Emmet"}
http://packagecontrol.io/... 200
extracting package to /home/user/.config/sublime-text/Packages/Emmet
Permission denied: '/home/user/.config/sublime-text/Packages/Emmet'
排查完务必关闭日志,避免干扰:在控制台输入 sublime.log_commands(False)。
真正难搞的往往不是 Python 异常,而是网络层(证书校验失败、代理超时)或解压阶段(zipfile.BadZipFile、磁盘满),这些只有开了 log_commands 才能看到。









