# ANSI Prism **Repository Path**: pgbrzeecomes/ansi-prism ## Basic Information - **Project Name**: ANSI Prism - **Description**: 在 VS Code 里直接看懂带颜色的日志 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2026-10-22 - **Last Updated**: 2026-10-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ANSI Prism **在 VS Code 里直接看懂带颜色的日志。** 不用再面对满屏的 `ESC[0;32m`。打开 `.txt` / `.log` 文件,ANSI Prism 会把颜色还原出来,让大文件滚动像普通编辑器一样顺滑,并帮你快速找到错误、警告和关键行。 特别适合 ESP-IDF、串口和嵌入式日志:自动识别 `E/W/I` 前缀和红/黄/绿色。 ![ANSI Prism 主界面](https://images.weserv.nl/?url=raw.giteeusercontent.com/pgbrzeecomes/ansi-prism/raw/main/media/screenshots/01-overview.png) ## 你会得到什么 ### 日志终于有颜色了 绿色 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 可以多选,也可以一键回到全部: ![级别筛选](https://images.weserv.nl/?url=raw.giteeusercontent.com/pgbrzeecomes/ansi-prism/raw/main/media/screenshots/02-level-filter.png) ### 查找与按行筛选 按 `Ctrl+F` 打开查找栏,切换“按行筛选”后只保留匹配行: ![按行筛选](https://images.weserv.nl/?url=raw.giteeusercontent.com/pgbrzeecomes/ansi-prism/raw/main/media/screenshots/03-find-filter.png) ### 颜色与样式 16 色、256 色、真彩色,以及粗体、下划线、反色和背景色: ![颜色与样式](https://images.weserv.nl/?url=raw.giteeusercontent.com/pgbrzeecomes/ansi-prism/raw/main/media/screenshots/04-colors.png) ### 原始文本 一键切到“原始文本”,查看 ANSI 转义码: ![原始文本](https://images.weserv.nl/?url=raw.giteeusercontent.com/pgbrzeecomes/ansi-prism/raw/main/media/screenshots/05-raw.png) ### 缩放 `Ctrl+滚轮` 或 `Ctrl+=` / `Ctrl+-` 调整字号和行高: ![缩放](https://images.weserv.nl/?url=raw.giteeusercontent.com/pgbrzeecomes/ansi-prism/raw/main/media/screenshots/06-zoom.png) ## 打开就能用 在资源管理器里双击 `.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: ```json [ { "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`。