# 连接GitHub Copilot 命令行界面 (CLI)到VS Code

连接Copilot 命令行界面（CLI）和VS Code以共享上下文、信任设置和输出。

连接Copilot 命令行界面（CLI）与VS Code可为您带来两种环境的最佳结合：既拥有基于终端的工作流的速度和灵活性，又兼具编辑器的丰富视觉工具。 建立连接后，可以：

* **使用编辑器选择作为上下文** - 在 CLI 提示符中选择代码 VS Code 并直接引用它，而无需指定文件路径或行号。
* ```
            **以差异形式查看建议更改** — 当 Copilot 建议文件编辑时，会在 VS Code 中以并排差异显示，你可直观查看、接受或拒绝每项更改。
  ```
* **Surface实时诊断** — Copilot可以从 VS Code 访问实时错误和警告，以便它可以查找并修复编辑器已检测到的问题。
* **跨工具继续会话** - 查看 CLI 会话转录，并在集成终端中继续这些会话 VS Code，而不会丢失上下文。

## 连接到 VS Code

```
          Copilot 命令行界面（CLI） 可以在启动 CLI 会话时自动连接到 VS Code 。 此外，在交互式会话期间，可以选择连接到在本地计算机上 VS Code 当前打开的任何工作区。
```

### 启动时自动连接

启动 Copilot 命令行界面（CLI）时，它会检查从中启动 CLI 的当前工作目录是否与在 VS Code 受信任模式下打开的任何工作区文件夹匹配。 如果有匹配项，CLI 将连接到相关 VS Code 实例。 无论你在哪里使用 Copilot 命令行界面（CLI）：在VS Code中的内置终端，还是在单独窗口中运行的外部终端应用程序，该连接都会建立。

如果 Copilot 命令行界面（CLI） 成功连接到 VS Code，启动时显示的环境消息将包括“Visual Studio Code 已连接”或“Visual Studio Code - 预览体验成员已连接”。

如果在多个 VS Code 窗口中打开相同的工作区，CLI 会自动连接到其中一个工作区。 它不能同时连接到多个 IDE 实例。 如果您想连接到其他实例 VS Code，可以使用 `/ide` 命令进行切换。

> \[!NOTE]
> 如果使用 GitHub Codespaces，本地运行的 CLI 会话无法连接到 VS Code 远程代码空间中运行的工作区。 但是，可以在代码空间内使用 CLI（即 VS Code内置终端或远程代码空间主机上的 SSH 会话）内进行连接。

### 在交互式会话期间手动连接

如果在启动VS Code后打开工作区Copilot 命令行界面（CLI），或者从与任何打开的工作区不匹配的目录中启动 CLI，则可以使用`/ide`斜杠命令手动连接到VS Code工作区。 你要连接的工作区必须当前在 VS Code 中以受信任模式打开。

## 使用 `/ide` 斜杠命令管理连接

在交互式Copilot 命令行界面（CLI）会话中使用`/ide`斜杠命令：

* **查看** 当前连接状态，例如，如果要检查当前连接的工作区。
* ```
            **连接**到其他 VS Code 工作区。
  ```
* ```
            **断开**与 VS Code 的连接。
  ```

还可以从 `/ide` 菜单中切换以下设置：

* **自动连接到匹配的 IDE 工作区** - 控制 CLI 是否在启动时自动连接到匹配 VS Code 的工作区。
* ```
            **在 IDE 中打开文件编辑差异** — 控制建议的文件更改是否在 VS Code 编辑器选项卡中以差异形式显示。
  ```

##

```
          VS Code在提示中使用上下文
```

每当选择更改时，Copilot 命令行界面（CLI） 连接到 VS Code 后，它都会收到当前的编辑器选择。 所选内容将显示在 CLI 的提示下，向右对齐。 每当在VS Code中选择不同的代码时，此选择指示器将更新。

这允许你在 VS Code 中选择一些代码，然后使用提示，例如：

```copilot
Debug this
```

或者，你可以选择一些代码，但要询问 Copilot 有关整个文件的情况。

```copilot
Explain this file
```

## 以差异的形式查看文件更改

当你要求 Copilot 编辑工作区中的文件时，VS Code 会在新编辑器选项卡中以差异形式显示建议更改。这让你轻松查看 Copilot 的具体建议。 使用差异视图右上角的“接受”或拒绝（✗）按钮应用或放弃更改。 接受或拒绝差异后，挂起的文件编辑权限将得到解决，CLI 将继续其工作流程。

> \[!NOTE]
>
> * 如果你允许 Copilot 未经批准编辑文件，差异视图将不显示 — 例如使用 `--allow-all` 或 `--yolo` 命令行选项，或 `/allow-all` 或 `/yolo` 斜杠命令。 相反，提议的更改将直接应用于工作区中的文件，无需显示差异，CLI 将立即继续使用更新后的文件内容。
> * 如果您不愿在VS Code使用差异视图，可以在`/ide`菜单中关闭该功能。 关闭此项后，建议的文件更改将显示在 CLI 中。

## 查看和恢复 VS Code 中的 CLI 会话

可以在Copilot 命令行界面（CLI）内读取当前工作区的任何VS Code会话的文字记录。

1. 打开**Copilot聊天**侧栏。VS Code

2. 单击聊天面板右上角的“会话”图标（<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" aria-hidden="true" style="vertical-align: middle;"><path d="M12.5 1H3.5C2.122 1 1 2.122 1 3.5V12.5C1 13.879 2.122 15 3.5 15H12.5C13.878 15 15 13.879 15 12.5V3.5C15 2.122 13.878 1 12.5 1ZM2 12.5V3.5C2 2.673 2.673 2 3.5 2H9V14H3.5C2.673 14 2 13.327 2 12.5ZM14 12.5C14 13.327 13.327 14 12.5 14H10V2H12.5C13.327 2 14 2.673 14 3.5V12.5Z"/></svg>）以显示“会话”视图。

   “会话”视图列出了最近的 Copilot 会话，顶部是最新的会话。

3. 单击会话可读取完整的输入和输出文本。 对于 CLI 会话，脚本与该会话期间终端中显示的脚本相同。

如果您在当前工作区中运行了尚未在“会话”视图中查看的 CLI 会话，则在标题栏中的VS Code“聊天”图标旁边会显示一个点图标和未读计数。 单击它可切换已筛选的未读会话列表。 再次单击它可清除筛选器并查看所有会话。

![VS Code 中未读会话指示器的屏幕截图。](/assets/images/help/copilot/copilot-cli-vscode-unread-session.png)

若要在集成终端中 VS Code继续 CLI 会话，请在“会话”视图中右键单击该会话，然后选择 **“在终端中恢复**”。 这是从外部终端窗口获取工作的快速方法，而不会丢失任何会话上下文。

## 延伸阅读

* [GitHub Copilot 命令行界面 (CLI)](/zh/copilot/how-tos/copilot-cli)