ANSI Prism
在 VS Code 里直接看懂带颜色的日志。
不用再面对满屏的 ESC[0;32m。打开 .txt / .log 文件,ANSI Prism 会把颜色还原出来,让大文件滚动像普通编辑器一样顺滑,并帮你快速找到错误、警告和关键行。
特别适合 ESP-IDF、串口和嵌入式日志:自动识别 E/W/I 前缀和红/黄/绿色。

你会得到什么
日志终于有颜色了
绿色 INFO、黄色 WARN、红色 ERROR,粗体、下划线、反色和 256 色/真彩色都能正确显示。想看原始内容时,一键切到“原始文本”查看 ANSI 转义序列。
大文件也能随手翻
只渲染屏幕上看得到的行,几 MB 到上百 MB 的日志都能流畅滚动,不再等编辑器把整个文件加载完。支持百万行级日志和缩放滚动条。
找问题更快
按 Ctrl+F 打开查找栏,默认是普通搜索;点击一下就能切换成“按行筛选”,只留下包含关键词的行。例如输入 LP,页面就只剩带 LP 的日志。
- 支持字面、正则、全词三种方式
Aa 区分大小写、.* 正则、W 全词,可自由组合
Enter / Shift+Enter 或 F3 / Shift+F3 前后跳转
Ctrl+G 直接跳到原始行号
一眼看出重点
顶部五个级别按钮:ERROR / WARN / INFO / DEBUG / TRACE,可以多选,也可以一键回到全部。每个按钮都显示该级别的行数,红色/黄色/绿色和日志颜色保持一致。
识别不出来级别的行会归入“Unknown”,只在“全部”里显示,不会被强行打上错误标签。
按你的习惯阅读
- Ctrl + 鼠标滚轮缩放,
Ctrl+0 复位,阅读位置不会丢
- 界面自动跟随当前 VS Code 主题,深浅色、高对比度和自定义主题都支持
- 16 色 ANSI 默认跟随终端主题色,也可以切换成标准 xterm 配色
- 自动识别 UTF-8 / BOM,也可以手动切换 UTF-16 LE/BE、GB18030
只读,但复制很方便
查看器不会修改原文件。可以单击选中行、Shift+单击选择范围、Ctrl+C 复制;也可以复制原始带 ANSI 的行,或一次性复制当前筛选结果。需要修改时,从“更多”菜单里用文本编辑器打开即可。
日志还在写?跟着看
打开“跟随末尾”后会自动跟随文件末尾;向上滚动会暂停跟随,点一下就能跳回最新位置。
界面预览
级别筛选
点击 ERROR / WARN / INFO / DEBUG / TRACE 可以多选,也可以一键回到全部:

查找与按行筛选
按 Ctrl+F 打开查找栏,切换“按行筛选”后只保留匹配行:

颜色与样式
16 色、256 色、真彩色,以及粗体、下划线、反色和背景色:

原始文本
一键切到“原始文本”,查看 ANSI 转义码:

缩放
Ctrl+滚轮 或 Ctrl+= / Ctrl+- 调整字号和行高:

打开就能用
在资源管理器里双击 .txt / .log / .log.* 文件即可。常用快捷键:
| 操作 |
快捷键 |
| 打开查找栏 |
Ctrl+F / Cmd+F |
| 下一个 / 上一个匹配 |
F3 / Shift+F3,或 Enter / Shift+Enter |
| 转到行 |
Ctrl+G / Cmd+G |
| 缩放 |
Ctrl+滚轮、Ctrl+= / Ctrl+-,Ctrl+0 复位 |
| 复制选中行 |
选中后 Ctrl+C |
顶部按钮从左到右依次是:级别筛选、查找、彩色显示/原始文本、跟随末尾、缩放百分比和“更多”菜单。
“更多”菜单里可以:用文本编辑器打开、选择编码、转到行、显示/隐藏控制码行、复制筛选结果。
常用设置
所有设置都在 VS Code 设置里搜索 ansiPrism 即可找到。
| 设置 |
默认 |
你能用它做什么 |
ansiPrism.fontSize |
13 |
调整日志字号 |
ansiPrism.lineHeight |
22 |
调整行高;0 表示自动 |
ansiPrism.zoomLevel |
1 |
新打开查看器的初始缩放 |
ansiPrism.ctrlWheelZoom |
true |
是否允许 Ctrl+滚轮缩放 |
ansiPrism.encoding |
auto |
自动识别或手动指定文件编码 |
ansiPrism.hideControlOnlyLines |
true |
隐藏只有 ANSI 控制码、没有文字的行 |
ansiPrism.defaultFindMode |
search |
Ctrl+F 默认打开搜索还是按行筛选 |
ansiPrism.matchCase / regexSearch / wholeWordSearch |
false |
查找栏的默认选项 |
ansiPrism.colorLevelDetection |
true |
是否根据日志颜色判断级别 |
ansiPrism.levelRules |
[] |
用自定义规则给特殊日志行指定级别 |
ansiPrism.ansiPalette |
theme |
16 色 ANSI 跟随主题,或使用标准 xterm 色 |
ansiPrism.maxFileSizeMB |
2048 |
允许打开的最大文件大小 |
如果某些行没有级别、但你希望把它们归到某一类,可以用 levelRules。例如把 [Sleep] 心跳行当作 DEBUG:
[
{ "level": "debug", "match": "prefix", "value": "[Sleep]", "enabled": true }
]
常见问题
会修改我的日志文件吗?
不会。ANSI Prism 是只读查看器;需要编辑时用“用文本编辑器打开”。
支持多大的文件?
默认上限 2 GB;日常几百 MB、上百万行的日志都可以流畅浏览。打开时状态栏会显示索引进度。
正则表达式写错了怎么办?
查找栏会直接提示错误,不会开始扫描。特别慢的正则会被自动中止,不会卡住 VS Code。
为什么有的行没有级别?
日志本身没有 E/W/I 前缀或颜色时,会被归为 Unknown,只在“全部”里显示。你可以用 levelRules 自定义。
许可
MIT。架构参考了 bartag.ansi-logs(MIT),详见 THIRD_PARTY_NOTICES.md。