Merge migration/gpui at 2a27ce375 and retain its is_session rule in the shared input guard. Cover file manager tabs with actual TCP regression tests and document that cancellation leaves already sent text in the remote terminal.
6.9 KiB
快捷命令
快捷命令功能让你可以把常用命令保存成可复用动作,在工作区里快速发送到当前终端。
用途
- 高频执行固定运维命令
- 保存带参数模板的部署 / 排障脚本
- 把常见命令按产品、环境或团队分类
- 把危险命令先放到输入行检查,再决定是否执行
创建快捷命令
- 打开底部或侧边的 快捷命令 区域
- 点击 添加
- 在独立子窗口中填写命令信息
可配置字段包括:
| 字段 | 说明 |
|---|---|
| 标签名称 | 命令的显示名称 |
| 分类 | 命令所属分类 |
| 描述 | 命令说明(可选) |
| 颜色标签 | 自定义显示颜色 |
| 图标 | 自定义图标 |
| 置顶显示 | 是否优先显示在列表顶部 |
| 执行模式 | 立即执行或追加到输入行 |
| 命令脚本 | 要发送到终端的命令内容 |
保存后,命令会出现在快捷命令列表中,可继续编辑或删除。
执行模式
立即执行
点击后直接发送到当前终端并执行,用于:
- 确认无误的常用命令
- 日常巡检
- 固定格式的只读查询
追加到输入行
点击后只把命令放到输入行,不自动回车,用于:
- 还要再检查参数的命令
- 可能需要二次修改的脚本片段
- 有一定风险、希望人工确认的操作
变量提示
命令脚本支持 {{变量名}} 语法注入动态参数,例如:
docker exec -it {{容器名}} bash
执行时会弹出变量填写对话框,让你把模板命令补全后再发送。
转义序列与暂停
命令脚本里的这些写法会在发送时被解释:
| 写法 | 发送内容 |
|---|---|
\r |
回车 |
\n |
换行 |
\t |
制表符 |
\p |
暂停 1 秒后继续发送后面的内容 |
\\ |
一个反斜杠 |
其它反斜杠序列保持原样,所以正则的 \d、Windows 路径 C:\Users 不会被打乱。想发送一个字面反斜杠时写成 \\。
登录设备、串口菜单或老系统经常需要「发出一段、等一秒、再发下一段」,把 \p 写在两段之间即可:
admin\r\psecret\r\pdisplay version
这段脚本会先发送 admin 和回车,等待 1 秒,再发送 secret 和回车,再等待 1 秒后发送 display version。\p 只负责暂停,登录交互中的每次提交都需要显式写出 \r。连续写 \p\p 会等待 2 秒。
目标会话在脚本开始发送时固定(如有变量,则在提交变量后固定)。暂停期间切换标签不会改变目标。在某个目标会话中发送新快捷命令、手动输入或粘贴,会取消旧脚本对此会话的后续发送,其他目标继续执行。断开或关闭会话也会取消其剩余步骤。
取消只会阻止尚未发送的内容,已经发送到远程终端的前缀仍然保留,新输入可能直接接在它后面。例如,old\pobsolete 在暂停时被 new command 替代,终端可能收到 oldnew command。继续输入前请确认远程提示和已有内容,尤其是在登录交互中。NyaTerm 不会自动发送 Ctrl+C 或清除输入,因为不同设备和交互程序对控制字符的含义不同。
开启同步输入或使用「发送到所有会话」时,每个会话按同样的分段发送。
\n、\t 只影响脚本本身:执行模式仍然只决定最后一段要不要补回车,脚本末尾已经有 \r 或 \n 时不会多加一个。
变量填写对话框里输入的值按字面发送:值里的反斜杠不会被解释成转义或暂停,只有写在模板里的 \p 才会停顿。
分类、搜索、排序与视图
快捷命令面板支持这些管理方式:
- 通过搜索框按标签、命令内容或描述过滤
- 通过分类下拉框只看某一类命令
- 创建、重命名、移动和排序分类
- 置顶命令优先显示在列表顶部
- 按名称、使用频率、最近使用等排序模式整理列表
- 在紧凑视图和常规视图之间切换,以适配不同面板宽度
- 已保存分类会被复用,新命令也可以继续补充分类;导入时也会尽量保留外部文件中的分类结构
常见的分类方式:
- K8s
- Docker
- 数据库
- 发布脚本
- 环境巡检
导出快捷命令
在快捷命令面板右上角点击 导出快捷命令,把当前快捷命令和分类导出为 NyaTerm JSON 文件。导出文件可用于:
- 在另一台设备上通过 导入快捷命令 合并
- 作为团队模板分发
- 在做大规模分类整理前留一份可回退副本
导出不会包含终端历史或其他应用设置;它只覆盖快捷命令和分类数据。
导入快捷命令
在快捷命令面板右上角点击 导入快捷命令,可以从外部文件批量导入。导入会按命令 ID 合并覆盖,不会清空现有快捷命令。
从 WindTerm 导入
WindTerm 的快捷命令文件通常位于:
~/.wind/profiles/default.v10/terminal/quickbar.config
在 Windows 上可以在用户目录下找到对应路径:
C:\Users\<用户名>\.wind\profiles\default.v10\terminal\quickbar.config
选择 WindTerm Quickbar 后,选中这个 quickbar.config 文件即可导入。NyaTerm 会读取 quick.label、quick.text、quick.group 和 quick.uuid 等字段,并把 WindTerm 的 Send Text 类型导入为 追加到输入行,避免点击后立即执行脚本。
从 JSON 文件导入
选择 NyaTerm JSON 后,可以导入下面这种 JSON 文件:
{
"categories": [
{
"id": "general",
"name": "General"
},
{
"id": "k8s",
"name": "Kubernetes"
}
],
"commands": [
{
"id": "cmd-list-files",
"label": "List files",
"command": "ls -la",
"category_id": "general",
"description": "List files with details",
"color_tag": "blue",
"icon_tag": "terminal",
"pinned": true,
"execution_mode": "execute",
"source": "manual",
"risk_level": "low"
},
{
"label": "Kubernetes pods",
"command": "kubectl get pods -A",
"category": "Kubernetes",
"execution_mode": "append",
"risk_level": "low"
}
]
}
说明:
categories可以省略;使用category名称时,分类不存在会自动创建id可以省略;省略后会自动生成execution_mode支持execute或appendsource支持manual或airisk_level支持low、medium、high、critical
与工作区配合的使用方式
快捷命令并不绑定某一类会话。只要当前终端可接收输入,你就可以把命令发送到:
- SSH 会话
- 本地终端
- 某些需要批量发指令的串口场景
常见搭配方式:
- 左边看日志,右边通过快捷命令触发诊断脚本
- 远程 SSH 执行部署命令,本地终端同时做构建或 Git 操作
- 把变量化命令做成团队共享模板,减少人工拼写错误
- 将 AI Assistant 生成并通过审批的命令保存为快捷命令,后续按固定模板复用