/copy
使用 /copy 可以挑选当前会话里的消息,并复制到系统剪贴板。
当你需要把某一轮提问、某段助手回复,或者多条消息一起拷出去(比如写文档、贴 issue、或者放到别处继续讨论)时,就可以用它。输入 /copy 确认后,会打开一个全屏的消息选择面板,标题是 Copy Messages,你在列表里挑好目标再选择复制方式即可。
列表概览
面板会列出当前会话里可复制的消息节点,并且只会保留用户消息与助手回复。工具调用(tool)和推理过程(reasoning)不会出现在这份列表里,因为它们通常更适合在原会话里查看。
每一行会展示:
- 左侧勾选标记:用
Tab多选后,被选中的行会显示色块标记 - 消息类型前缀:
user或assistant - 该消息的摘要文本(列表里是截断展示;真正复制时会用完整内容)
标题行会显示当前位置,例如 Copy Messages (3 of 12),方便判断“现在在第几条 / 一共多少条”。
加载时可能会先显示 Loading copy picker...;如果当前会话还没有可复制的用户/助手消息,则会显示 No user or assistant messages。
默认光标会尽量落在当前相关的那条消息上;如果拿不到“当前行”,则回退到列表里最新的一条。打开面板时,你通常可以直接按复制键拿走最近一轮内容。
大致效果如下图所示:

怎么操作
底部会有一行快捷键提示,常用操作如下:
↑/↓,或者j/k:上下移动光标←/→,或者h/l:按页翻动(消息多的时候比较有用)Tab:切换当前行的多选状态(选中 / 取消选中)A(或Shift + A):- 当前还没有任何多选时:全选
- 已经有多选时:反选
Space:打开当前光标所在消息的完整内容预览c:按 display 格式复制C(或Shift + C):按 raw 格式复制Esc:关闭面板
也可以用鼠标左键点击某一行,把光标移过去;点击本身不会触发复制。
多选后,页脚还会额外提示类似 · 2 selected,方便确认“这次会复制几条”。
在预览界面里:
Esc或Space:退回列表←/→/↑/↓,以及h/j/k/l:翻页查看更长内容c/C:仍然可以直接复制(见下方「复制的是哪几条」)
复制的是哪几条
按 c 或 C 时,目标集合按下面规则决定:
- 如果你已经在预览界面:只复制当前预览的那一条(不会把列表里的多选一并复制)
- 如果在列表里,且已经有多选:按列表顺序,把所有勾选中的消息拼在一起复制
- 如果在列表里,且还没有多选:复制当前光标所在的那一条
多条消息拼接时,中间会用空行隔开(实现上是三段换行),读起来更像分段摘录,而不是一整块。
需要注意:
- 复制成功后,面板不会自动关闭。你可以继续挑、继续拷,或按
Esc退出。 - 列表摘要可能因终端宽度被截断,但复制走的是消息的完整文本,不是屏幕上看到的那一行省略号内容。
raw 和 display 有什么区别
/copy 提供两种复制格式,对应页脚里的 C copy raw 与 c copy display:
对用户消息来说,两者通常差别不大。对助手回复来说,差别更明显:如果这条助手消息下面还挂着工具调用等可回放片段,display 往往会把这些展示向文本一并拼进去;raw 则更偏向消息本体的原始内容。
简单说:
- 想尽量贴原始消息正文 → 用
C(raw) - 想更接近你在 TUI 里看到的那版可读文本 → 用
c(display)
不确定时,可以先 Space 预览一眼,再决定用哪种格式复制。
复制之后会发生什么
确认复制后,Hunea 会把拼好的文本写入剪贴板(优先走系统剪贴板;某些环境下也会回退到终端剪贴板协议)。成功时一般会弹出类似 Selection copied 的提示;失败时则是 Copy selection failed。
如果当前根本没有可复制的用户/助手消息,却仍然按了复制键,会提示 No user or assistant messages to copy,不会写入空内容。
剪贴板写入失败时,已有的多选不会被清掉,方便你检查环境后直接重试,而不用重新勾一遍。
一点使用建议
- 只想拷“刚才那条助手回复”:打开
/copy后,光标通常已经靠近最新消息,直接c或C即可。 - 想整理一整轮问答:用
Tab依次勾选相关的user/assistant,再一次复制出去。 - 会话很长时,先用
h/l翻页定位,不用在长列表里一条条硬滚。 - 需要先确认内容对不对:
Space预览 → 在预览里直接c/C,或退回列表再拷。
如果你想做的是把某条旧的用户输入重新填回输入框,那应该用 /resend,而不是 /copy。