VS Code Copilot Agent/Chat扩展无法看到终端命令的输出

编程语言 2026-07-09

当Copilot代理执行非常基础的shell命令时,根本没有输出,即使退出码为0:

Copilot 聊天显示 echo test,没有输出。

当我聚焦并打开集成终端时,我可以看到输出。只是代理看不到它。

如何让代理捕获输出?

(有趣的是,只有当Copilot的 run_in_terminal 工具以同步模式运行时才会成为问题,这是默认设置。如果让我让代理以异步模式运行,它就能看到输出。)

解决方案

RPROMPT 在你的.zhrc文件中可能会打断它:

# display "✓" on right side if error code 0, otherwise display "✗"
RPROMPT="%(?.%F{green}✓%f.%F{red}✗%f)"

禁用 RPROMPT,或者仅在非Copilot环境中执行它,这样Copilot就能够在同步模式下读取shell的输出。

# Only enable right prompt in iTerm, not VS Code/Copilot terminals.
# Otherwise it causes run_in_terminal sync mode output to be blank.
if [[ -o interactive && "$TERM_PROGRAM" == "iTerm.app" ]]; then
  RPROMPT="%(?.%F{green}✓%f.%F{red}✗%f)"
fi
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章