Appearance
Ctrl+C 无法中断 Gemini CLI 正在执行的 Agent 任务
问题
在 Gemini CLI 中,当 Agent 正在运行(执行 Shell 命令、写文件、调用工具等)时,按 Ctrl+C 无效,任务仍然继续运行。这与大多数终端程序的中断行为不一致,让用户困惑。
解决方案
使用 ESC 键中断
按 ESC 键即可中断当前 Agent 任务,Gemini CLI 会在当前工具调用完成后停止执行并返回输入提示符。
这是 Gemini CLI 的设计行为:Ctrl+C 用于退出整个 CLI 会话,ESC 用于中断当前 Agent 任务(类似"取消当前操作"而非"退出程序")。
在 Plan Mode 下操作以减少误操作需求
如果你频繁需要中断是因为 Agent 做了你不期望的事,建议先用 Plan Mode(/plan) 让 Agent 输出执行计划,确认无误后再执行:
/planPlan Mode 下 Agent 会先展示计划步骤,你可以修改或取消,避免意外操作后再靠中断补救。
常见问题
Q: 按 ESC 后任务立刻停止吗?
A: 不是立刻停止。ESC 发出中断信号后,Gemini CLI 会等当前工具调用(如 Shell 命令)完成,然后才停止后续步骤。正在写的文件会完成本次写入。
Q: 为什么 Ctrl+C 不中断任务?
A: 这是设计行为。Gemini CLI 将 Ctrl+C 保留给退出整个会话,使用 ESC 作为任务中断键,与终端其他程序的习惯有所不同,官方 issue #973 中有记录。
Q: 中断后 Agent 还能继续未完成的任务吗?
A: 可以。中断后你可以重新描述需求,Agent 会从头开始;也可以用 /rewind 回退到中断前的状态重新规划。