Skip to main content
Skip to content

使用多个 GitHub Copilot CLI 会话

一次性运行多个 Copilot CLI 会话,并使用边栏快速在会话之间移动。

介绍

每次启动 Copilot CLI时,都会开始或恢复 会话。 你可以将会话视为你与 GitHub Copilot 之间的对话,其中包括:

  • 你的提示:你要求 Copilot 做什么,以及你在提问时 Copilot 所做的任何回复。
  • Copilot的响应:答案、说明、命令、代码更改等。
  • 对话上下文:发送到大型语言模型的信息,以允许它适当地响应你的提示。
  • 工具活动:已访问文件 Copilot 、已运行的命令、已执行的搜索。
  • 特定于会话的状态:例如,当前工作目录、文件系统权限、访问审批、当前模式(交互式、计划或 autopilot)。

你可以同时进行多个会话。 可以并行保留多个运行状态并在它们之间切换。 这在以下情况下非常有用:

  • 同时处理两个工作片段,例如,在一个会话中生成一个功能,同时在另一个会话中修复不相关的 bug。
  • 等待某个长时间运行的任务完成——让一个会话去编译、运行测试套件,或在自动驾驶模式下自主工作,同时在另一个会话中规划下一项修改。
  • 移交任务——将任务交给云端处理,同时继续在本地工作,并留意其进展。

有三个地方可以管理您的会话:

  • 会话边栏:停靠在当前会话左侧的面板,用于在会话之间快速切换。 这是在当前活动的本地会话或最近活动过的本地会话之间切换的最快方式。
  • 会话”选项卡:会话历史记录的更完整列表,包括远程会话。 列表是可搜索的,显示在主 CLI 区域中。
  • 会话选择器:一种用于在会话之间切换的命令行界面,你可以在任何本地会话中通过输入 /continue/resume 来调用它。

会话侧边栏是本文的重点。

会话侧边栏

边栏是与当前聊天一起打开的面板。 由于它位于对话旁边,而不是替换对话,因此在主 CLI 区域的 “当前 ”选项卡上时,对话时间线和提示输入字段将保持可见。 无需离开当前会话,即可查看其他会话。

打开和关闭边栏

在对话界面中,当提示词输入框为空时,按 打开侧边栏并将焦点移入其中。 按 将焦点移回对话,然后再次关闭边栏。 如果你更喜欢 Vim 风格的按键,当侧边栏获得焦点时,hl 的作用方式相同。

在会话之间移动

当焦点位于侧边栏时,按 (或 kj)即可在各个会话间移动。 按 Enter 打开所选会话。 焦点回到对话中,让你能够立即输入提示词。

s 更改列出会话的顺序,循环访问 “最近”、“已创建”、“名称**”和“无”**(未排序)。

您还可以使用鼠标切换到某个会话。 单击和双击都可切换到该会话。 单击一次即可将焦点返回到对话(如按 Enter),而双击会将焦点保留在选中该会话的边栏中,以便可以继续浏览会话列表。

创建和关闭会话

您可以直接在侧边栏中管理会话:

  • n 启动 会话。

  • x 两次 关闭 突出显示的会话。

    注意

    正在运行的会话将被结束、保存,并从侧边栏中移除。 未在运行的会话会直接从侧边栏中移除。 以这种方式移除的会话在之后的会话中不会显示在侧边栏中,除非你恢复该会话,例如通过 >/resume 会话选择器。

边栏顶部有两个标题按钮: (关闭边栏)和 + (启动新会话)。 按 越过列表顶部即可移动到这一排按钮上,然后按 Tab 在各按钮之间切换,按 Enter 激活当前按钮。 也可以直接单击按钮。

一目了然地阅读会话状态

由于边栏在你工作时始终显示在屏幕上,因此它就像一个会话状态面板。 你可以一目了然地看出哪些会话属于:

  • 当前正在运行(实心圆图标: ) 。
  • CLI 的 “当前 ”选项卡(突出显示)中显示的当前会话。
  • 最近使用,但当前未运行(空心圆图标: )。
  • 忙于处理一轮对话(脉动圆形图标:● ◉ ◎ ○),或处于空闲状态(静态图标)。
  • 等待你处理(! 表示权限提示,? 表示问题)。
  • 在特定模式下(计划模式和自动驾驶模式使用与默认模式不同颜色的文本)。

调整大小和鼠标控制

除了点击某个会话即可切换到该会话之外,你还可以拖动侧边栏与对话区域之间的分隔线来调整面板大小,并将鼠标悬停在列表上,使用滚轮滚动浏览较长的会话列表。

获取快速帮助

当边栏处于打开状态时,可查看会话边栏的快速参考指南。

有关完整的侧边栏参考信息,请参阅 GitHub Copilot CLI 命令参考

“会话”选项卡

会话 ”选项卡是会话的全屏视图。 使用 Tab 键切换到此选项卡。或者,输入 /session

会话 ”选项卡提供了一些在边栏中无法获取的东西:

  • 搜索:按 / 后开始键入要查找的会话的名称。
  • 筛选范围:按 a 键可在 本地远程全部 会话之间循环切换列表。
  • 完整历史记录:选项卡扫描完整的会话存储,而不仅仅是最近的会话存储。
  • 云和远程会话:在云中运行的会话将在此处显示,以便可以恢复它们。

在边栏和“会话”选项卡之间进行选择

这两个位置都列出了你的会话,但它们针对不同的作业进行了优化。 侧边栏可用于快速切换你当前正在同时处理的各个会话。 会话选项卡是完整的资源库和管理界面。

Sidebar“会话”选项卡
布局停靠在你的对话旁全屏
当前聊天保持可见当选项卡处于打开状态时隐藏
显示的会话最近和实时的本地会话你的全部历史记录
云/远程会话是的
搜索是的
范围(所有/本地/远程)不(只是本地)是的
最适用于上下文间的快速切换查找、浏览和管理

当您想要执行以下操作时,可使用侧边栏

  • 留在当前对话中。 侧边栏会在你查看其他会话时,让对话时间线保持显示在屏幕上。 打开 “会话 ”选项卡将完全隐藏当前对话。
  • 快速切换,就地切换。 当焦点位于侧边栏时,您可以在各个会话之间快速切换。
  • 留意状态。 由于它停留在屏幕上,边栏允许你查看会话的状态和注意力标记,无需导航即可检查它们。
  • 无需离开当前工作流程,即可切换。 可以在正常键入过程中使用箭头键打开、关闭和切换会话。

当您想要执行以下操作时,请使用会话选项卡:

  • 搜索特定的过往会话。
  • 恢复云或远程会话 - 这些会话仅显示在选项卡中。
  • 浏览完整历史记录——较早的会话一旦不再显示在侧边栏的最近列表中,就只能在这里访问。

在日常工作中继续使用侧边栏,你并不会牺牲太多。 可以在边栏中执行大多数会话管理,而无需转到 “会话 ”选项卡。

返回到之前的会话

会话已保存,因此可以返回之前开始的工作,以继续任务、检查代理执行的操作,或重复使用已构建的上下文。

  • 在侧边栏中:当前目录的最近会话会显示为可恢复的条目(标记为 ○)。 突出显示一个并按 Enter 将其打开,然后再次开始工作。
  • 在“会话”选项卡中:搜索或浏览完整的历史记录,包括云会话,然后打开其中任何会话。
  • 使用会话选取器:在本地会话中,输入 /resume (或 /continue)以显示列出已保存会话的选取器。 使用箭头键导航到会话,然后按 Enter 将其打开或删除 d 。 按键 s 循环浏览列表的不同排序顺序: 相关性 (它与当前工作目录的匹配程度)、 上次使用创建名称

也可以在从命令行启动 Copilot CLI 时选择会话:

# Resume the most recent session
copilot --continue

# Choose a session to resume
copilot --resume

# Resume a specific session by ID, ID prefix, or exact name
copilot --resume=SESSION-ID
copilot --resume="my feature"

# Name a new session so it is easy to find later
copilot --name "checkout refactor"

活跃和不活跃会话

在任何时候,会话都是以下两项内容之一:

  • 活动中:当前正在 Copilot CLI 中运行,无论是你正在聊天的会话,还是在后台运行的会话。 当你切换出当前会话时,该会话会继续运行而不会停止,因此当你切换到另一个会话时,耗时较长的任务也会继续执行。 活跃会话以实心圆()标示。
  • 非活动:保存到磁盘但未运行。 非活动会话用空圆() 指示。

只要运行本地会话的进程保持打开状态, Copilot CLI 本地会话就保持活动状态。 没有空闲超时——处于空闲状态的后台会话不会自动停止。 退出 Copilot CLI时,其本地会话将停止并变为非活动状态。 它们仍然已保存,因此下次可以恢复它们。 若要在会话处于活动状态时停止计算机睡眠,请使用 /keep-alive on

会话还可以 远程运行。 当你使用 /delegate 委派任务时(或在提示前加上 & 作为前缀),Copilot 会将工作移交给运行在 Copilot cloud agent 上的 GitHub,后者会在后台代表你执行任务——独立于你的 CLI。 这些云会话显示在“ 会话 ”选项卡中,可在其中恢复这些会话并在本地引导。 有关无需手动干预的工作的更多信息,请参阅 将任务委派给 Copilot

停止会话

若要停止当前正在使用的会话,请使用 /exit 斜杠命令。 或者,您也可以在侧边栏中选中某个会话,然后按 x 停止该会话。 这会停止会话并将其从边栏中删除,直到恢复会话为止。

停止会话不会将其删除。 会话已保存,稍后可以恢复会话。

无需停止会话。 让它们继续保持运行状态,你就能立刻切换回去,并保留完整的上下文。 但是,你也可以停止其中一个会话,以终止你不再希望继续的任务:例如,以 autopilot 模式运行的会话,或者正在运行你通过 /every/after 安排的提示词的会话。 还可以选择停止会话以释放内存,或只是为了减少侧栏中的混乱。

会话斜杠命令

可以从任何会话内部使用斜杠命令管理会话:

Command它的作用是什么
/new启动新会话。
/resume [SESSION-ID]/continue切换到另一个会话,从选取器(或传递 ID) 中进行选择。
/rename [NAME]重命名当前会话(如果省略名称,系统会自动生成一个名称)。
/session打开 “会话 ”选项卡。
/session info显示有关当前会话的详细信息。
/session id显示当前会话 ID 并将其复制到剪贴板。
/session files列出此会话中更改的文件。
/session plan显示当前计划。
/session checkpoints [N]显示会话的检查点。
/session cleanup/session prune旧的或过期会话数据清理
/session delete [ID]/session delete-all删除一个会话,或删除全部会话。
/exit/quit关闭当前会话。 如果还有其他窗口处于打开状态,则其中最新打开的窗口会显示在前台。 CLI 仅在关闭最后一个会话时退出。

自定义边栏

默认情况下,边栏可用。 你可以在交互式会话中使用各种 /settings sidebar.* 斜杠命令来禁用其打开功能,或更改其行为的各个方面。 例如,可以为边栏中的每个会话启用关闭按钮,并且可以让当前焦点(对话或边栏)遵循鼠标指针位置。

有关边栏设置及其默认值的完整列表,请参阅 GitHub Copilot CLI 命令参考

延伸阅读: