ansiescape插件必须安装以解决日志乱码问题,它专用于解析sublime text原生控制台和build输出中的ansi颜色码,需正确安装、手动触发重绘,并配合显式换行与适配的颜色主题才能确保日志可读。

ANSIescape 插件必须装,否则日志全是乱码
SpringBoot、Node.js 或 Python 启动日志里一堆 \x1b[32m 这类字符,不是 Sublime 问题,是日志本身带 ANSI 颜色控制码——默认不解析,直接当纯文本显示。装 ANSIescape 是唯一靠谱解法。
- 先确认 Package Control 已就位:按
Ctrl+Shift+P(macOS 是Cmd+Shift+P),输入Package Control: Install Package能搜到并执行 - 再输
ANSIescape,选中回车安装(注意拼写,不是ansi_escape或ansiescape) - 装完不用重启,但得手动触发一次重绘:比如保存一个含 ANSI 码的日志文件,或在控制台执行
sublime.log_commands(True)再关掉,强制刷新渲染管道
装完没反应?检查是否被其他插件拦截了输出流
ANSIescape 只处理发往 Sublime 控制台(Ctrl+`)和输出面板(如 Build Results)的内容,对第三方终端模拟器(如 Terminus、Shell Turtlestein)或自定义 view.insert() 不生效。
- 确认你在看的是原生控制台或 Build 输出:菜单
View → Show Console或Tools → Build后的面板 - 如果用了
Terminus,它自带 ANSI 支持,但需在设置里开"enable_ansi_color": true,和ANSIescape无关 - 某些调试插件(如
SublimeREPL)会绕过 Sublime 的日志管道,此时ANSIescape无法捕获,只能换用支持 ANSI 的 REPL 实现
报错堆栈还是挤成一行?print() 缺少换行是主因
控制台里 print("err", e) 和 print("err", e, "\n") 效果天差地别——前者所有输出紧贴着堆栈顶部滚动,后者才真正分段可读。
- 别依赖
print()自动换行:Sublime 的print是封装过的,行为接近sys.stdout.write(),不自动刷缓存也不加\n - 调试时统一写成
print(f"[DEBUG] {var!r}", "\n"),确保每条日志独占一行 - 遇到长 traceback 被截断?不是插件问题,是控制台行宽限制;拖动底部滑块横向查看,或复制整段到新 tab 里用
Ctrl+F搜索关键词
颜色显示异常?别乱改 color_scheme
ANSIescape 渲染依赖当前 color_scheme 对 ANSI 颜色的映射,但多数主题(如 Monokai、Adaptive)只定义基础色,不覆盖全部 256 色。结果就是 \x1b[95m(亮紫色)变成灰块或消失。
- 优先用官方推荐主题:
Monokai Bright或ayu,它们显式声明了高亮色组 - 不想换主题?打开
Preferences → Color Scheme,选一个带 “ANSI” 字样的方案(如有),或手动编辑当前 scheme 文件,在variables区块补全"ansi_bright_magenta"等 key - 最省事办法:临时关颜色——在
ANSIescape设置里加"enable_colors": false,至少保证文字可读
print() 时不加 \n,等于把所有错误日志塞进同一行滚动,再好的插件也救不回来。











