终端搜索
OxideTerm 提供两种搜索模式来查找终端会话中的内容 — 一种用于当前视窗,另一种用于完整会话历史。
两种搜索模式
Section titled “两种搜索模式”| 模式 | 搜索范围 | 速度 | 适用场景 |
|---|---|---|---|
| Visible Buffer | 当前视窗 + xterm.js 滚动缓冲区 | 实时 (< 5 ms) | 快速查找最近输出 |
| Deep History | 完整会话历史(最多 100,000 行) | 异步 (50–100 ms) | 搜索大量命令历史 |
快捷键:
- macOS:
⌘F - Windows:
Ctrl+Shift+F - Linux:
Ctrl+F
或右键终端 → 搜索。
┌──────────────────────────────────────────────────────┐│ [Visible Buffer] [Deep History] [×] │├──────────────────────────────────────────────────────┤│ 🔍 Search terminal output... 2/15 [↑] [↓] │├──────────────────────────────────────────────────────┤│ □ Aa (大小写) □ .* (正则) □ Word (整词) │└──────────────────────────────────────────────────────┘| 组件 | 功能 |
|---|---|
| 模式标签 | 切换 Visible Buffer 和 Deep History |
| 搜索输入 | 输入搜索词 |
| 匹配计数 | 显示当前位置/总匹配数(如 2/15) |
| 导航按钮 | ↑ 上一个,↓ 下一个匹配 |
| 选项 | 大小写敏感、正则表达式、整词匹配 |
Visible Buffer 模式
Section titled “Visible Buffer 模式”使用 xterm.js 原生 SearchAddon 搜索当前可见的终端内容。
- 实时高亮 — 输入即搜索(150ms 防抖)
- 黄色高亮 — 匹配文本以黄色背景显示
- 橙色高亮 — 当前选中匹配以橙色背景显示
- 极速 — 毫秒级响应,无后端往返
| 操作 | 快捷键 |
|---|---|
| 下一个匹配 | Enter 或点击 ↓ |
| 上一个匹配 | Shift+Enter 或点击 ↑ |
| 关闭搜索 | Esc |
Visible Buffer 搜索上限为 1,000 个匹配(性能保护)。如果显示 1000+ matches,请细化搜索词。
Deep History 模式
Section titled “Deep History 模式”搜索存储在后端滚动缓冲区的完整会话历史 — 默认 30,000 行,可在设置中配置至 100,000 行。
- 异步执行 — 通过
spawn_blocking运行,保持 UI 响应 - 结果列表 — 显示所有匹配项的行号和内容
- 点击跳转 — 点击任意结果滚动到对应位置
- Rust Regex 驱动 — 大缓冲区上的高性能模式匹配
┌──────────────────────────────────────────────────────┐│ 15 matches (45ms) │├──────────────────────────────────────────────────────┤│ Line 1234 ││ npm install react-dom │├──────────────────────────────────────────────────────┤│ Line 2456 ││ npm install success — installed 23 packages │├──────────────────────────────────────────────────────┤│ ... │└──────────────────────────────────────────────────────┘Deep History 显示前 100 个匹配。如有更多,底部提示总数(如 Showing first 100 of 456 matches)。
大小写敏感 (Aa)
Section titled “大小写敏感 (Aa)”| 状态 | 行为 |
|---|---|
| 关闭(默认) | error 匹配 error、Error、ERROR |
| 开启 | error 仅匹配 error |
正则表达式 (.*)
Section titled “正则表达式 (.*)”| 状态 | 行为 |
|---|---|
| 关闭(默认) | file.txt 精确匹配 — . 被转义 |
| 开启 | file.txt 也匹配 fileXtxt — . 匹配任意字符 |
整词匹配 (Word)
Section titled “整词匹配 (Word)”| 状态 | 行为 |
|---|---|
| 关闭(默认) | test 匹配 test、testing、contest |
| 开启 | test 仅匹配独立单词 test |
单词边界包括空格、标点和行首/行尾。
常用正则模式
Section titled “常用正则模式”| 模式 | 说明 | 示例 |
|---|---|---|
^xxx | 行首匹配 | ^Error: 匹配以 Error: 开头的行 |
xxx$ | 行尾匹配 | success$ 匹配以 success 结尾的行 |
a|b | 或运算 | ERROR|FATAL 匹配任一词 |
\d+ | 数字 | port \d+ 匹配 port 3000、port 8080 |
\w+ | 单词字符 | user_\w+ 匹配 user_admin、user_123 |
.* | 任意字符 | start.*end 匹配 start 和 end 之间的内容 |
查找错误日志
Section titled “查找错误日志”- 切换到 Deep History
- 启用 Regex
- 搜索:
^(ERROR|FATAL): - 点击结果跳转到对应位置
最近的 Git 命令
Section titled “最近的 Git 命令”- 留在 Visible Buffer
- 搜索:
git commit - 按
Shift+Enter向上导航
提取 IP 地址
Section titled “提取 IP 地址”- 切换到 Deep History
- 启用 Regex
- 搜索:
\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b - 浏览结果列表
- 留在 Visible Buffer
- 启用 Regex
- 搜索:
port \d+
Visible Buffer
Section titled “Visible Buffer”| 指标 | 数值 |
|---|---|
| 响应时间 | < 5 ms |
| 最大匹配数 | 1,000 |
| 搜索范围 | 视窗 + xterm.js 滚动缓冲区 |
Deep History
Section titled “Deep History”| 指标 | 数值 |
|---|---|
| 搜索速度 | 50–100 ms(100K 行) |
| 搜索引擎 | Rust Regex |
| 执行方式 | 异步 (spawn_blocking) |
| 默认历史 | 30,000 行(可配置至 100,000) |
组合选项 — 同时启用 Regex + 大小写敏感 + 整词匹配。例如 \bError\b 仅匹配独立的大写 “Error”。
否定前瞻 — 使用 ^(?!.*DEBUG).*ERROR 查找包含 ERROR 但不包含 DEBUG 的行。
锚定搜索 — 添加 ^ 或 $ 减少误匹配并提升性能。
| 操作 | macOS | Windows / Linux |
|---|---|---|
| 打开搜索 | ⌘ F | Ctrl+Shift+F (Win) / Ctrl+F (Lin) |
| 关闭搜索 | Esc | Esc |
| 下一个匹配 | Enter | Enter |
| 上一个匹配 | Shift+Enter | Shift+Enter |
无结果但内容确实存在? 关闭大小写敏感。如果内容已滚出视窗,切换到 Deep History。启用正则时检查语法 — 搜索栏底部会显示错误信息。
Deep History 搜索慢? 简化正则模式。添加更具体的搜索词。超大历史(100K+ 行)配合复杂模式会更耗时。
Visible Buffer 中显示 “1000+ matches”?
细化搜索词。使用整词匹配或添加锚点(^、$)减少匹配数量。