在 macOS 上, cmd+C 不会在 alt-screen TUIs 中进行复制 — copy() 中的 PTY 回退功能是 Linux 专用的
□ 总结
曲速已经有这个的固定——它只是被门到Linux.
#13988(Linux,"ctrl+tort+c"在Claude代码拥有内部选择权时被吞并)被固定在#14046中,在"TerminalView:::copy ()"中附加了倒数:如果Warp自身没有被复制,而Alt屏幕运行,则将副本意向PTY转发,这样TUI就可以复制自己的选择. 在macOS上,cmd+C'发送到同样的副本()'——但倒置被cfg!'(目标-os = "linux")'所包裹,因此它永远不会起火,而cmd+C'默默无闻地无所事事。
这是9159号的后半部. #14012(合并,谢谢)固定了"编码器",因此"cmd+Backspace"/"cmd+marrows"现在正确到达了TUI. 复制路径是一个单独的,app级的截取,#14012没有触碰,因此#9159关闭了"cmd+C"仍然被打破.
□ 环境
- 转动`0.2026.08.05.09.03.01'(包括#14012)
- macOS 26.5.1,arm64
- Claude 代码 2.1.228 有 “ tui ” : “全屏” (任何具有自己选择内容的Alt-screen TUI 复制——开口代码行为相同)
□ 重现
- 运行 Claude 在 Warp 中以全屏模式编码 。
- 在TUI内部选择其内部选择。
- 按`cmd+C'。
** 预期:** 选择区域位于macOS剪贴板上,与“ctrl+C”相匹配(Claude) 代码在选择活动时重用为副本),并匹配了"ctrl+trange+c"在#14046后现在对Linux所做的.
** 实际:** 没有复制。 扭曲会消耗键盘,找不到自己的选择,然后停止。 剪贴板不变。
□ 根源
app/src/terminal/view.rs:16520'-fn copy()'。 最终倒计时,
/ 请检查url=值 (帮助). 如果没有复制任何内容,而且一个全屏的TUI(自动屏幕)正在管理自己的选择,
/ 将副本意向转发到前景 TUI , 这样它就可以复制自己的选择 。
如果 cfg ! (目标 os = "linux")
自动. select blocks.is 空()
QQ 自定义. model.lock (. ).is alt screen 活化 ()
{
自我. user write ctrl c to pty(ctx);
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
cfg!'(目标-os = "linux")at `view.rs:16575'是整个问题。 守卫中的其他一切都是平台中立的,并且已经对了macOS:
tterminal:copy'与 " cmd+C"在macOS上带有 "id!" ( "terminal") & !id! ( "IME Open") (app/src/terminal/view/init.rs:376'),这在终端平板电脑中始终是真实的——所以Warp在编码器看到它之前就赢得了按键。 没有用户侧键绑定、设置或“键绑定”。 Yaml ' 的无约束改变这一点,没有编码器的固定可以达到它。- `副本()'的每一个较早的分行在到达倒数时都已经返回,因此倒数只有在Warp真正没有任何东西可以复制时才运行。
用户-写作-ctrl c to pty()'(view.rs:8758')是平台独立的。
□ 建议的固定
放下站台门 :
如果自.sselect blocks.is 空地 () QQ自. model.lock (.is alt screen 活地 () {
自我. user write ctrl c to pty(ctx);
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
这是相同的行为#14046 已经运出,验证,和回归测试在Linux上——只是不再局限于一个 . . . . . . .
内容来源: warpdotdev/warp