clear()仅清屏不删报错历史,print("\n"*100)是兼容性最佳的视觉清屏方案,彻底清除历史需删除ConsoleHistory.sublime-settings并重启Sublime。

clear() 能清显示,但清不掉报错历史
输入 clear() 确实能立刻让控制台变空,光标回到顶部,看起来像重置了一样——但它只刷新视图,print、traceback、Exception 这些报错内容仍留在后台缓冲区里。按 ↑ 键还能翻出之前执行过的命令,错误堆栈也随时可能被再次触发或干扰新输出。
常见错误现象:NameError: name 'clear' is not defined —— 这不是你输错了,而是当前 Sublime 版本(尤其是 ST4 的某些构建或插件覆盖环境)没暴露这个函数。
- ST3 多数稳定版支持
clear(),ST4 建议先试; - 若报错,别反复重试,直接换
print("\n" * 100); - 注意别在插件代码里调用
clear()—— 它只在 Console 交互式环境中有效,脚本里会报错。
print("\n" * 100) 是最稳的视觉清屏方案
这是开发者实际调试时用得最多的兜底方式:靠大量换行把旧输出顶出可视区域,不依赖任何配置或版本特性,兼容 ST3/ST4 所有主流构建。
参数差异很实在:100 是经验值,窗口高就调到 150,窄屏 60 也够用;但别写成 print("\n" * 10000) —— 滚动卡顿明显,尤其低配机器或远程桌面场景下,光等回滚就浪费几秒。
- 每次调试循环前加一句,比手动拖滚动条快得多;
- 它不影响变量状态或已加载模块,只是“眼不见”;
- 和
clear()一样,不碰历史记录文件,↑ 键依然能调出上一条命令。
真正删掉报错历史,得动 ConsoleHistory.sublime-settings
控制台里按 ↑ 键能翻出的命令、包括所有 Traceback 和 AttributeError 输出,其实都持久化存进了磁盘文件,不是内存里临时缓存。想让它“从没发生过”,必须删这个文件。
路径要对准你当前 Sublime 版本(ST4 默认无版本号后缀):
- Windows:
%APPDATA%\Sublime Text\Packages\User\ConsoleHistory.sublime-settings - macOS:
~/Library/Application Support/Sublime Text/Packages/User/ConsoleHistory.sublime-settings - Linux:
~/.config/sublime-text/Packages/User/ConsoleHistory.sublime-settings
关键点:必须彻底退出 Sublime(Windows 查任务管理器有没有残留 subl.exe,macOS 看菜单栏图标是否消失),否则文件被占用,删了也白删,重启后自动恢复。
别混淆 Session.sublime_session 和 ConsoleHistory
有人顺手删了 Session.sublime_session 想清控制台历史,结果发现窗口布局、未保存标签页全没了——那是会话快照文件,管的是整个编辑器状态,和 Console 报错历史无关。
ConsoleHistory.sublime-settings 就是专管控制台输入历史的,删它不会影响主题、插件、快捷键或最近打开文件列表。但它也不管你插件里 sublime.error_message() 弹出的对话框,那些错误提示是独立 UI,清这里不影响它们。
真正容易被忽略的是:删完文件后必须重启 Sublime,且第一次启动时别急着开 Console —— 它会在你首次调出控制台时才重建空白的 ConsoleHistory.sublime-settings。

















