Add an opt-in display-row mode with matching gutter backgrounds and stable colors through scrolling and history eviction. Preserve existing behavior by defaulting the new local setting to false, and update translations, documentation, and regression tests.
9.5 KiB
终端功能
本页覆盖终端的基础操作、命令历史与建议、可选增强项、SSH 辅助能力和会话录制。
基础操作
搜索、复制与右键菜单
终端右键菜单可直接执行这些高频操作:
- 复制 / 粘贴
- 粘贴选中的文本
- 查找文本
- 在线搜索选中文本
- 按 provider 翻译选中文本
- 交给 AI Assistant 解释或分析
- 清屏 / 全部清除
- 全选
在 设置 → 交互 中,你还可以调整:
- 选中即复制
- 右键粘贴
- 单词分隔符
- 默认字符编码
回滚缓冲区、字体与缩放
- 回滚缓冲区默认保留 5000 行 输出,可调范围 100 到 100000 行
- 可自定义字体族、字号、普通字重、粗体字重、光标样式与闪烁
- 可通过菜单或快捷键放大、缩小、重置终端缩放;终端根节点会协调缩放,避免嵌套工作区重复处理
- 硬件加速默认开启,排查渲染或驱动问题时可在 设置 → 终端 中关闭
粘贴与输入兼容
- 多行粘贴提示 默认开启。粘贴多行文本时先弹出处理窗口,可选择直接粘贴、按行发送或取消
- 终端可以按设置处理图片路径粘贴,把截图或本地图片路径快速带入命令行工具
- 允许 OSC 52 写入剪贴板 控制远程应用能否通过终端输出写入本机剪贴板。它让远端的 tmux、vim 等工具可以直接复制到本地,代价是远端进程获得了写本机剪贴板的能力
- 终端默认支持系统原生输入法的组合文本与提交,无需开启兼容选项
- macOS 下如需让
Option+f这类组合发送ESC+ 按键而不是输入ƒ,在 设置 → 交互 中开启 将 Option 作为 Meta/Alt 键 - 在 vim、less、top 等交互式程序中,NyaTerm 会抑制命令建议,避免历史建议覆盖程序自己的输入体验
命令历史与建议
NyaTerm 会为会话工作流提供两类辅助:
命令历史
- 自动记录终端输入过的命令
- 支持模糊检索
- 可从右侧的 命令历史 面板回看历史输入
- 搜索栏会保留近期查询,便于重复查找同一类日志或错误
终端查找
Ctrl / Cmd + Shift + F 会打开终端查找框。查找框支持:
- 上一个 / 下一个结果跳转
- 当前结果与总结果数提示
- 无结果、搜索中和正则错误反馈
- 重复使用近期查询,不必每次重新输入完整关键词
输入建议
输入时会基于历史命令给出建议。
历史里如果有很多超长命令、一次性脚本或噪音条目,可以在 设置 → 交互 中过滤:
- 是否启用命令建议
- 建议参与匹配的最小历史命令长度
- 建议参与匹配的最大历史命令长度
需要注意:
- 这两个长度过滤只影响历史命令建议
- 它们不会影响右侧命令历史面板中的已有记录
- 它们也不会影响快捷命令本身的可用性
从终端唤起 AI
终端右键菜单提供这些 AI 入口,都会自动带上当前会话的上下文:
- 生成命令 — 描述目标,由 AI 生成命令卡片
- 解释最近输出 — 把当前会话最近的终端输出发给 AI,不必手动复制日志
- 解释选中内容 — 解释选中的日志、报错或片段
- 分析错误 — 把错误上下文交给 AI 生成修复建议
- 修复选中内容 — 从选中报错推导下一步命令
Agent 模式执行命令时,输出摘要会以内联片段显示在终端附近,行数由 设置 → AI → Agent Settings 的 Terminal Output Lines 控制,设为 0 关闭。
模式、命令卡片、风险控制、provider 与模型配置见 AI 助手。
命令风险评估
手动输入命令时也会走同一套风险评估。命中规则后弹出提示,显示风险等级、命中原因和更安全的替代命令,你可以继续执行或改用替代命令。
需要在 设置 → AI 中开启 命令风险检查。四档分类和判定依据见 AI 助手 → 风险等级怎么定。
可选终端增强项
以下能力默认全部关闭,按需开启。
行号与时间戳 gutter
在 设置 → 终端 中可分别开启:
- 显示行号
- 显示时间戳
开启后,终端左侧会出现 gutter,用于辅助阅读长日志、命令输出或回放录制内容。
动作链接
动作链接默认关闭,开启后可识别并点击常见文本模式,包括:
- IPv4 地址,例如
192.168.1.10 host:port,例如db.internal:5432- 压缩包文件名,例如
backup.tar.gz
注意:
- 需要先在 设置 → 终端 中开启 动作链接
- 打开链接时需要使用 Ctrl / Cmd + 点击,避免和普通选中操作冲突
- 三类 matcher 可以分别启用或关闭
终端行斑马纹
终端行斑马纹 默认开启。开启后高亮 shell 输入区域和鼠标点击的目标行,便于在密集输出里定位当前输入位置。
开启后可使用 按行显示 子开关(默认关闭),让输入和输出按屏幕显示行交替显示浅底色,替代输入区域底色。长文本自动换行后,每条显示行分别交替;关闭自动换行时,每条完整行交替。鼠标点击的目标行仍优先高亮。关闭主开关会保留子开关选择。
低延迟模式
低延迟模式 默认关闭。开启后临时跳过命令建议、关键词高亮和动作链接的富化处理,把终端输入和滚动保持在最短路径上。用于高吞吐输出或远端延迟较高的场景,代价是本页其他增强项在开启期间不生效。
关键词高亮
关键词高亮同样默认关闭。启用后,NyaTerm 会先应用内置规则,再叠加你的自定义规则。
内置规则覆盖的内容不只限于错误关键字,还包括:
- error / warn / success / info / debug 等常见状态词
- 日期时间
- 数字、大小、持续时间
- 地址、URL、UUID、版本号等结构化文本
- 提示符(
$/#)
你也可以自定义规则:
- 自定义规则名称
- 分别设置深色 / 浅色主题颜色
- 每行填写一个匹配模式
- 可选择是否跨折行继续匹配
导入自定义高亮规则
在 设置 → 终端 → 自定义规则 中点击 导入,可以从 JSON 文件导入自定义高亮规则。
导入会和现有规则合并,不会清空已有列表:
- 相同
id的规则会被更新 - 不存在的
id会追加为新规则 id为空时会自动生成name为空或没有有效patterns的规则会被跳过
推荐的 JSON 结构如下,也兼容直接使用规则数组作为文件顶层:
{
"keyword_highlights": [
{
"id": "deploy-errors",
"name": "Deploy Errors",
"patterns": ["deploy failed", "rollback required", "fatal"],
"color_dark": "#ff7b72",
"color_light": "#cf222e",
"enabled": true
}
]
}
大输出保护
当某个会话输出量过大时,NyaTerm 会临时进入保护模式,优先保证终端可交互性。
在这个阶段,应用会暂时抑制部分高开销装饰能力,并提示已经跳过的排队字符数;待输出压力回落后再恢复正常显示。这个机制主要用于日志洪峰或持续刷屏的场景。
大输出处理
终端输出会经过批量处理后再更新画面。在 tail -f、编译日志、压测输出等高吞吐场景下,这有助于保留输入响应、滚动和搜索体验;这是默认行为,不需要手动开启。
SSH 相关辅助能力
Keep-Alive
对 SSH 会话,可以在 设置 → 终端 中配置 Keep-Alive 间隔:
- 默认值为 30 秒,可调范围 0 到 600 秒
- 设为
0表示关闭 - 用于降低长时间空闲连接被远端回收的概率
同一分组下还有 Keep-alive 模式,可选 禁用、兼容 和 严格。当前 SSH 运行时对 严格 使用与 兼容 相同的传输行为,该选项只保留配置意图。
远程主机监控
SSH 会话可以在右侧打开五个监控面板:资源监控、NVIDIA GPU 监控、Ascend NPU 监控、进程管理和 Docker 管理。它们各自的开关、默认值、轮询间隔和具体能力见 远程主机监控。
翻译与在线搜索
在终端中选中文本后,你可以直接通过右键菜单:
- 使用自定义搜索引擎做在线搜索
- 使用已启用的翻译 provider 打开翻译对话框
搜索引擎
在 设置 → 搜索 中,你可以维护自定义搜索引擎列表,为它们设置:
- 名称
- URL 模板(使用
%s占位) - 图标
- 是否显示在搜索菜单中
翻译 provider
Google 和 Microsoft 开箱可用;DeepL、百度、阿里 和 有道 需要先在 设置 → 翻译 中填写凭据才会出现在菜单里。完整说明见 翻译功能。
会话录制
Ctrl / Cmd + Shift + R 开始或停止录制当前会话,把终端输出写成日志文件。
录制文件默认保存到系统下载目录,也可以在 设置 → 传输 中为录制单独指定 录制保存路径,把留档文件和普通下载分开。
同一分组下还有两个录制选项:
- 自动开始录制 — 会话一打开就录制,不必手动触发
- 包含时间戳 — 在录制文稿中写入时间戳,便于把输出对应到实际时间
录制选项也可以配置在单个连接的表单里,把「生产堡垒机总是录制」这类策略绑定到连接本身,而不是每次打开会话后手动切换。