本文档介绍了如何使用 Gemini Code Assist(IDE 中 AI 赋能的协作工具)帮助您在 VS Code、IntelliJ 和其他支持的 JetBrains IDE 中执行以下操作:
- 接收指导,帮助您解决代码问题。
- 为您的项目生成代码。
- 通过指定文件和文件夹来管理项目的上下文。
- 创建自定义命令和规则。
本文档适用于各种技能水平的开发者。本文档假定您熟悉 VS Code、IntelliJ 和其他受支持的 JetBrains IDE。您还可以使用 Android Studio 中的 Gemini。
准备工作
VS Code
- 设置 Gemini Code Assist 个人版、Gemini Code Assist Standard 或 Gemini Code Assist Enterprise(如果尚未设置)。 
- 在代码文件中测试 Gemini Code Assist 功能之前,请确保您的文件所使用的编程语言受支持。如需详细了解支持的编码语言,请参阅支持的编码语言。 
- 如果您倾向于在代理环境下使用 IDE,请参阅 Visual Studio Code 中的网络连接。 
IntelliJ
- 设置 Gemini Code Assist 个人版、Gemini Code Assist Standard 或 Gemini Code Assist Enterprise(如果尚未设置)。 
- 在代码文件中测试 Gemini Code Assist 功能之前,请确保您的文件所使用的编程语言受支持。如需详细了解支持的编码语言,请参阅支持的编码语言。 
- 如果您倾向于在代理环境下使用 IDE,请参阅 HTTP 代理。 
使用 Gemini Code Assist 对话功能获取代码说明
在本部分中,您将提示 Gemini Code Assist 对现有代码进行解释。
VS Code
如需获取代码的说明,请按以下步骤操作:
- 打开您的代码文件。 
- 在 IDE 的活动栏中,点击 spark Gemini Code Assist。 
- 在 Gemini Code Assist 窗格中,输入提示 - Explain this code to me,然后点击 send 发送。- Gemini Code Assist 会将代码文件中的内容作为提示参考,并返回解释结果。 - 如需引用特定代码块(而不是文件中的所有代码),您可以选择代码文件中的代码块,然后提示 Gemini Code Assist。 
IntelliJ
如需获取代码的说明,请按以下步骤操作:
- 在 IDE 中,打开您的代码文件。 
- 在 Gemini Code Assist 工具窗口中,输入提示 - Explain this code to me,然后点击提交。
Gemini Code Assist 会将代码文件中的内容作为提示参考,并返回解释结果。
如果您只想了解代码的某个部分,可以选择相应代码,然后再次提示 Gemini Code Assist。Gemini Code Assist 仅会将所选代码作为生成回答的参考内容。
Gemini Code Assist 在其回答中为您提供代码时,您可以选择回答末尾列出的以下选项:
- 在光标处插入:将生成的代码插入到当前文件的当前光标位置。 
- 插入到新文件:打开一个新文件,并将生成的代码插入到该新文件中。   
当 Gemini Code Assist 识别出代码块中使用的语言,并且当前 IDE 支持该语言时,这些选项才可用。
查看查询历史记录
如果您想重复使用之前的提示,可以点击 schedule 显示查询记录,前往 Gemini Code Assist 工具窗口,在查询记录中找到这些提示。
 
 
创建多个对话
您可以创建多个与 Gemini Code Assist 的对话,这些对话包含其自己的上下文,与其他对话无关。您的对话记录会显示您的首次对话和上次更新时间戳。对话数量上限为 20 个。达到此上限后,当您添加新对话时,系统会自动删除最早的对话。
VS Code
- 如需添加新对话,请点击 add 发起新对话,然后在文本字段中输入提示。输入提示后,Gemini Code Assist 会创建新对话。
- 如需访问之前的对话,请点击 history 继续之前的对话。系统会显示您的对话列表。选择要查看的对话。
- 如需删除对话消息串,请点击继续之前的对话,然后点击要删除的对话旁边的 delete 删除。
IntelliJ
- 如需添加新对话,请点击 add 发起新对话,然后在文本字段中输入提示。输入提示后,Gemini Code Assist 会创建新对话。
- 如需访问之前的对话,请点击 chat_bubble 最近的对话。系统会显示您的对话列表。选择要查看的对话。
- 如需删除对话消息串,请点击最近的对话,然后点击要删除的对话旁边的 删除 删除。
清除聊天记录
Gemini Code Assist 在回答提示时会使用对话记录来获取更多上下文信息。如果您的对话记录不再相关,您可以清除对话记录。
管理对话
您可以通过执行以下操作来管理 Gemini Code Assist 对话设置:
配置自动滚动
VS Code
默认情况下,Gemini Code Assist 会自动滚动浏览对话。如需停用此行为,请执行以下任务:
- 依次前往设置 > 扩展程序 > Gemini Code Assist。 
- 搜索自动滚动设置,然后取消选中相应复选框。 
IntelliJ
Gemini Code Assist for IntelliJ 和其他 JetBrains IDE 不支持此功能。
停止正在进行的对话
VS Code
您可以按 stop 停止来停止正在进行的对话回答:
 
 
IntelliJ
您可以按 stop 停止来停止正在进行的对话回答:
 
 
修改之前的提示
当您修改之前的提示时,Gemini Code Assist 会重新生成对修改的提示的回答。如需修改提示,请按照以下步骤操作:
VS Code
- 在对话窗格中,将指针悬停在要修改的提示上。 
- 依次点击修改 修改。   
- 更改提示,然后点击更新。 - Gemini Code Assist 会根据您修改的提示生成新的回答。 
IntelliJ
- 在对话窗格中,将指针悬停在要修改的提示上。 
- 依次点击修改 修改。   
- 更改提示,然后点击更新。 - Gemini Code Assist 会根据您修改的提示生成新的回答。 
重新生成提示的回答
如果您愿意,可以按照以下步骤重新生成对最新提示的不同回答:
VS Code
在 Gemini Code Assist 对话窗格中,点击最新回答底部的重放图标 重新生成回答。
Gemini Code Assist 会重新评估您最近的提示,并提供新的回答。
IntelliJ
在 Gemini Code Assist 对话窗格中,点击最新回答底部的重放图标 重新生成回答。
Gemini Code Assist 会重新评估您最近的提示,并提供新的回答。
删除提示和回答对
如需删除您的提示以及 Gemini Code Assist 对特定提示的回答,请按照以下步骤操作:
VS Code
- 在对话窗格中,将指针悬停在要移除的提示上。 
- 点击删除。   
- 当系统提示您确认是否要删除提示和回答对时,请选择删除。否则,请点击取消以取消操作。 - 您的提示和回答对会从您与 Gemini Code Assist 的对话记录中移除。 
IntelliJ
- 在对话窗格中,将指针悬停在要移除的提示上。 
- 点击删除。   
- 当系统提示您确认是否要删除提示和回答对时,请选择删除。否则,请点击取消以取消操作。 - 您的提示和回答对会从您与 Gemini Code Assist 的对话记录中移除。 
配置代码预览窗格
默认情况下,Gemini Code Assist 对话的预览窗格设置处于启用状态。启用此设置后,Gemini Code Assist 对话中的预览代码块会显示前 6 行代码。您可以展开和收起代码块。
如需更改默认设置,请执行以下任务:
VS Code
- 在 IDE 中,依次前往设置 > 扩展程序 > Gemini Code Assist。 
- 搜索默认代码块显示设置。 
- 从下列选项中选择一项: - 展开:自动展开 Gemini Code Assist 对话回答中的所有代码块。 
- 预览:仅显示代码块中的前 6 行代码。您必须展开 Gemini Code Assist 对话回答中的代码块,才能看到其余代码。这是默认设置。 
- 收起:自动收起 Gemini Code Assist 对话回答中的所有代码块。 
 - 当 IDE 重新加载时,新设置会生效。 
IntelliJ
此功能是 IntelliJ Gemini Code Assist 和其他 JetBrains IDE 中的默认功能,无法配置。
通过对话使用所选代码提示 Gemini Code Assist
Gemini Code Assist 可以根据您选择的代码执行任务或回答您的问题。如需根据提示和所选代码生成代码,请按以下步骤操作:
VS Code
- 在活动栏中,点击 spark Gemini Code Assist 以打开 Gemini Code Assist 窗格。 
- 在代码文件中,选择一个代码块。 
- 在 Gemini Code Assist 窗格文本字段中,输入所选代码的提示。 - 例如,在代码中选择一个函数,然后输入提示 - Write a unit test for this function。- Gemini 会将您选择的代码作为参考,并生成对提示的回答。 
IntelliJ
- 在活动栏中,点击 星光图标 Gemini Code Assist,打开 Gemini Code Assist 工具窗口。 
- 在代码文件中,选择一个代码块。 
- 在 Gemini Code Assist 工具窗口文本字段中,输入所选代码的提示。 - 例如,在代码中选择一个函数,然后输入提示 - Write a unit test for this function.- Gemini Code Assist 会将您选择的代码作为参考,并生成对提示的回答。 
将所选代码段添加到上下文
您可以选择、附加代码段,并指示 Gemini Code Assist 专注于这些代码段。通过选择代码段,您可以对较小的代码块(而非整个文件)进行离散分析。
在代码文件中选择代码段后,您可以指示 Gemini Code Assist 将该代码段添加到上下文抽屉式导航栏。
在编辑器窗口中选择但尚未添加到上下文抽屉式导航栏中的任何内容也会自动包含在上下文中。所选代码段仅在一轮对话中显示。它们不会保留在上下文抽屉式导航栏中,但会保留在 Gemini Code Assist 对话记录中。
在本部分中,您会将所选代码段添加到上下文中,并从 Gemini Code Assist 获取有关该代码段的说明:
VS Code
- 在代码文件中,选择一个代码段。 
- 在 Gemini Code Assist 对话文本字段中,点击添加到对话上下文。 - Gemini Code Assist 会将所选代码段添加到上下文抽屉式导航栏中。 
- 在 Gemini Code Assist 对话文本字段中,输入提示 - what does this code do?。- Gemini Code Assist 会根据您在上下文抽屉式导航栏中选择的代码段来回答您的提示。 
IntelliJ
- 在代码文件中,选择一个代码段。 
- 选择 spark Gemini 图标,然后从菜单中选择将所选文本添加到 Chat。 - 代码段已添加到上下文抽屉式导航栏中。 
通过对话使用所选终端输出提示 Gemini Code Assist
Gemini Code Assist 可以根据所选的终端输出执行任务或回答您的问题。如需获取所选终端输出的说明,请按以下步骤操作:
VS Code
- 在 IDE 中,打开终端(视图 > 终端)。 
- 选择任意终端输出。 
- 右键点击所选终端输出,然后选择 Gemini Code Assist:添加到对话上下文。 - Gemini Code Assist 会将终端输出添加到上下文抽屉式导航栏中。 
- 在 Gemini Code Assist 对话文本字段中,输入提示 - what does this do?。- Gemini Code Assist 会根据您在上下文抽屉式导航栏中选择的终端输出来回答您的提示。 
IntelliJ
- 在 Gemini Code Assist 对话文本字段中,输入 - @terminal。
- 在随即显示的列表中,选择终端下要查询的终端。   
- 在 Gemini Code Assist 对话文本字段中,输入提示 - what does this do?。- Gemini Code Assist 会根据您选择的终端输出来回答您的提示。 
在工作区上下文中指定文件和文件夹
您可以在工作区中指定文件或文件夹,供 Gemini Code Assist 用作上下文。指定文件夹后,Gemini Code Assist 会将该文件夹中的文件以及子文件夹中的文件用作上下文。
VS Code
如需在对话提示中指定文件或文件夹,请输入 @,然后选择要指定的文件或文件夹。
 
 
如需了解代码库中两个文件的区别,请按以下步骤操作:
- 在活动栏中,点击 spark Gemini Code Assist。 
- 在 Gemini Code Assist 窗格中,输入提示符 - Explain the difference between @YOUR_FILE_NAME_1 and @YOUR_FILE_NAME_2,然后按 Enter 键(Windows 和 Linux)或 Return 键 (macOS) 或 Tab 键。您也可以通过点击列表中的文件名来进行选择。点击文件名会将文件添加到提示上下文中,并在 IDE 中打开该文件。
Gemini Code Assist 会在使用您为上下文指定的两个文件的同时回答您的提示。Gemini Code Assist 还会将您指定的文件纳入上下文来源。
现在,您已指定这些文件,可以继续在同一对话记录中询问其他问题或提示,而无需再次指定文件。
例如:在 Gemini Code Assist 窗格中,输入提示符 How can I
improve YOUR_FILE_NAME_1?(不带 @ 符号),然后按 Enter 键(Windows 和 Linux)或 Return 键 (macOS)。
Gemini Code Assist 会根据您在提示中指定的文件回答您的问题。
IntelliJ
如需在对话提示中指定文件或文件夹,请输入 @,然后选择要指定的文件或文件夹。
 
 
如需了解代码库中两个文件的区别,请按以下步骤操作:
- 在活动栏中,点击 spark Gemini Code Assist。 
- 在 Gemini Code Assist 窗格中,输入提示符 - Explain the difference between @YOUR_FILE_NAME_1 and @YOUR_FILE_NAME_2,然后按 Enter 键(Windows 和 Linux)或 Return 键 (macOS) 或 Tab 键。您也可以通过点击列表中的文件名来进行选择。点击文件名会将文件添加到提示上下文中,并在 IDE 中打开该文件。
Gemini Code Assist 会在使用您为上下文指定的两个文件的同时回答您的提示。Gemini Code Assist 还会将您指定的文件纳入上下文来源。
现在,您已指定这些文件,可以继续在同一对话记录中询问其他问题或提示,而无需再次指定文件。
例如:在 Gemini Code Assist 窗格中,输入提示符 How can I
improve YOUR_FILE_NAME_1?(不带 @ 符号),然后按 Enter 键(Windows 和 Linux)或 Return 键 (macOS)。
Gemini Code Assist 会根据您在提示中指定的文件回答您的问题。
管理上下文抽屉式导航栏中的文件和文件夹
指定要用作 Gemini Code Assist 提示上下文的文件或文件夹后,这些文件和文件夹会放置在上下文抽屉式导航栏中,您可以在其中查看它们,也可以将其从提示上下文中移除。
如需管理上下文抽屉式导航栏中的文件和文件夹,请执行以下任务:
VS Code
- 在 IDE 的活动栏中,点击 spark Gemini Code Assist。 
- 如需查看上下文抽屉式导航栏中的文件和文件夹,请点击上下文项。   
- 如需从上下文抽屉式导航栏中移除各项,请点击 close 移除。 
IntelliJ
- 在活动栏中,点击 spark Gemini Code Assist。 
- 如需查看上下文抽屉式导航栏中的文件和文件夹,请点击上下文。   
- 如需从上下文抽屉式导航栏中移除文件和文件夹,请点击 close 移除。 
从本地上下文中排除文件
默认情况下,如果在 .aiexclude 或 .gitignore 文件中指定了相应文件,Gemini Code Assist 会在代码补全、代码生成、代码转换和对话的上下文中,从本地使用中排除这些文件。
如需了解如何从本地使用中排除文件,请参阅从 Gemini Code Assist 使用中排除文件。
在对话中还原到检查点
应用 Gemini Code Assist 根据您的提示生成的更改后,您可以选择将修改后的代码文件还原到特定检查点,这会将所有已应用于代码文件的更改还原。
还原到检查点不会还原您可能对代码文件进行的手动更改。
如需将代码文件还原到检查点,请按以下步骤操作:
VS Code
在 Gemini Code Assist 对话窗格中,依次点击撤消 还原到检查点。这会将您的代码文件还原到进行修改之前的检查点状态。
IntelliJ
如果您已点击对话生成的代码建议中的勾号 接受更改,则可以选择使用撤销 回滚更改按钮来回滚更改:
在 Gemini Code Assist 对话窗格中,依次点击撤销 回滚更改。这会将您的代码文件还原到进行修改之前的检查点状态。

查看代码差异
默认情况下,Gemini Code Assist 会通过代码差异建议对代码进行更改。您可以随时触发此差异,只需让 Gemini Code Assist 对您的代码进行更改即可。
在本部分中,您将提示 Gemini Code Assist 优化代码文件,查看代码文件中的差异,并根据需要接受或拒绝更改。
VS Code
- 打开代码文件后,提示 Gemini Code Assist - optimize this file。如果您想优化多个文件和文件夹,请提示 Gemini Code Assist- optimize @FILE1 and @FILE2。- Gemini Code Assist 会在代码文件中针对您的提示提供代码更改建议,并提供内嵌差异来展示这些更改。 
- 在代码文件中,点击 check_small 接受或 close_small 拒绝。   
- 如果 Gemini Code Assist 在您的代码文件中建议了多个更改,请点击建议上方的查看,然后点击下一个或上一个,以循环浏览其他建议。 
- 如果您想接受或拒绝所有建议的更改,请点击接受文件或拒绝文件。   
- 您还可以使用提示回答中的“快速预览”,接受或拒绝多个代码文件中的所有建议。   
IntelliJ
- 打开代码文件后,提示 Gemini Code Assist - optimize this file。如果您想优化多个文件和文件夹,请提示 Gemini Code Assist- optimize @FILE1 and @FILE2。- Gemini Code Assist 会在代码文件中针对您的提示提供代码更改建议,并在对话回答中提供说明这些更改的差异。 
- 在对话回答中,点击 check_small 接受更改。   
更改差异视图设置
VS Code
如果您愿意,可以按照以下步骤更改此设置,以便在 IDE 中显示单独的差异视图窗口:
- 在活动栏中,依次前往设置 设置 > 设置。 
- 在设置的用户标签页中,依次前往扩展程序 > Gemini Code Assist。 
- 滚动到 Geminicodeassist > 对话:更改视图设置。 
- 在下拉列表中,选择以下选项之一: - 内嵌建议(默认处于启用状态):显示在代码文件中的代码更改。
- 默认差异视图:打开一个新文件,其中并排显示代码更改。
 
IntelliJ
目前,Gemini Code Assist for IntelliJ 和其他受支持的 JetBrains IDE 不支持此功能。
创建自定义命令
默认情况下,Gemini Code Assist 会为 VS Code 提供 /generate 等命令,并为 IntelliJ 和其他受支持的 JetBrains IDE 提供生成代码等命令。您还可以创建自己的自定义命令,以帮助您在 IDE 中更快地完成重复性任务。
在本部分中,您将创建一个名为 add-comments 的自定义命令,用于向代码文件中的代码添加注释。对于 IntelliJ 和其他受支持的 JetBrains IDE,您将通过提示库和编辑器内提示创建、保存和执行自定义命令。
VS Code
- 在代码文件中,按 Ctrl+I(适用于 Windows 和 Linux)或 Command+I(适用于 macOS),以打开 Gemini Code Assist 快速选择菜单。 
- 在该菜单中,搜索并选择首选项:打开设置 (UI)。 
- 在搜索设置字段中,输入 - Geminicodeassist: Custom Commands。
- 在自定义命令框中,选择添加项。 
- 在项字段中,输入 - add-comments作为命令的名称。
- 在值字段中,输入 - add comments to all functions without comments in my code作为提示。
- 点击确定。 
您现在可以在 IDE 中使用自定义命令 add-comments。该命令会显示在“Gemini Code Assist 快速选择”菜单(Ctrl+I [适用于 Windows 和 Linux] 或 Command+I [适用于 macOS])的命令列表中。
IntelliJ
- 在 IDE 中,依次前往设置 > 工具 > Gemini > 提示库。   
- 在提示库窗口中,点击 add 添加。 
- 将自定义命令命名为 - add-comments。
- 在提示库的文本框中,输入提示: - Add comments to all functions without comments in this code。
- 选中在编辑器内提示中显示复选框(如果未选中)。 
- 点击确定,将自定义命令保存在提示库中。 
- 在代码文件中,突出显示要修改的代码。 
- 右键点击突出显示的代码,依次前往 Gemini > 提示库,然后选择自定义命令 - add-comments。- Gemini Code Assist 会执行 - add-comments命令,并向突出显示的代码添加注释。
您还可以通过执行以下任务,使用编辑器内提示调用自定义命令:
- 在代码文件中,突出显示要修改的代码,然后按 Alt+\(适用于 Windows 和 Linux)或 Cmd+\(适用于 macOS),以打开 Gemini Code Assist 快速选择菜单。 
- 在菜单中,选择您的自定义指令 - add-comments。- Gemini Code Assist 会执行 - add-comments命令,并向突出显示的代码添加注释。
在 Gemini Code Assist 对话窗格中,您可以输入 @,以检索并使用提示库中保存的提示。
创建规则
您可以创建供 Gemini Code Assist 遵循的规则,这些规则会包含在您输入的每个对话提示中。
借助 Gemini 中的规则,您可以定义偏好设置,例如:
- 编码样式
- 输出格式
- 技术栈
- 语言
例如,您可以创建一条规则,例如“Always give me concise responses in Kotlin”。
VS Code
- 在代码文件中,按 Ctrl+I(适用于 Windows 和 Linux)或 Command+I(适用于 macOS),以打开 Gemini Code Assist 快速选择菜单。 
- 在该菜单中,搜索并选择首选项:打开设置 (UI)。 
- 在搜索设置字段中,输入 - Geminicodeassist: Rules。
- 在文本字段中,输入规则,例如: - Always generate unit tests when creating a new function。您还可以在文本字段中添加包含多行的一条或多条规则。- 在“规则”设置中添加规则后,Gemini Code Assist 会在您每次发出提示或请求时考虑相应规则。 - 如需移除规则,请从“规则”文本字段中删除相应内容。 
IntelliJ
- 如需创建规则,请依次前往设置 > 工具 > Gemini > 提示库 > 规则,然后在编辑器中修改文本。
- 如需设置规则的范围,请在范围下拉菜单中选择 IDE 或项目。 - IDE 级规则仅供您自己使用,并且可用于多个项目。
- 项目级规则可以在处理同一项目的团队成员之间共享。
 - 如需在整个团队中共享提示,您必须将 - .idea文件夹添加到版本控制系统。
 
已知问题
本部分简要介绍了 Gemini Code Assist 的已知问题:
VS Code
- 如果对话回答包含大型打开文件的更新版本,可能会被截断 - 如需解决此问题,请选择较小的一小段代码,并在对话提示中添加额外的指令,例如 - only output the selected code.
- Vim:除非处于插入模式,否则无法接受或拒绝代码生成建议 - 在常规模式下使用 Vim 插件时,您无法接受或忽略代码建议。 - 如需解决此问题,请按 i 键进入插入模式,然后按 Tab 键接受建议。 
- Vim:按 Esc 键以忽略建议时行为不一致 - 按 Esc 键时,IDE 和 Gemini Code Assist 建议都会关闭。此行为与非 Vim 行为不同,后者在按下 Esc 键时会重新触发 Gemini Code Assist。 
- 登录尝试反复超时 - 如果您的登录尝试反复超时,请尝试将 - cloudcode.beta.forceOobLogin设置添加到- settings.json文件中:- "cloudcode.beta.forceOobLogin": true
- 许可引用警告不会在各个会话之间保留 - 如果许可引用警告无法在各会话中保留,请查阅持久性日志: - 依次点击视图 > 输出。 
- 选择 Gemini Code Assist - 引用。 
 
- Gemini Code Assist 输出窗口中的连接问题 - 如果您在 Gemini Code Assist 输出窗口中看到连接错误或其他连接问题,请尝试以下操作: - 配置防火墙以允许访问 - oauth2.googleapis.com和- cloudaicompanion.googleapis.com。
- 配置防火墙以允许通过 HTTP/2 进行通信,gRPC 使用的是 HTTP/2。 
 - 您可以使用 - grpc-health-probe工具测试连接。成功的检查结果会显示以下输出:- $ grpc-health-probe -addr cloudaicompanion.googleapis.com:443 -tls error: this server does not implement the grpc health protocol (grpc.health.v1.Health): GRPC target method can't be resolved- 检查失败会导致输出以下内容: - timeout: failed to connect service "cloudaicompanion.googleapis.com:443" within 1s- 如需获取更多详细信息,请在 - grpc-health-probe之前运行以下命令:- export GRPC_GO_LOG_SEVERITY_LEVEL=info
IntelliJ
截至目前,Gemini Code Assist for IntelliJ 和其他支持的 JetBrains IDE 暂无已知问题。
留言反馈
如需就您的体验提供反馈,请参阅提供 Gemini for Google Cloud 反馈。