VSCode中的AI工具

清晰编程 2024-07-28 16:01:05 阅读 67

GitHub Copilot扩展是一个AI配对程序员工具,可以帮助您更快,更智能地编写代码。你可以使用VS Code中的Copilot扩展来生成代码,从它生成的代码中学习,甚至配置你的编辑器。

先决条件

你将使用GitHub Copilot扩展来支持VS Code中的人工智能(AI)建议。

Image

使用GitHub Copilot,您需要一个活跃的GitHub Copilot订阅。在下面的内容中,您将了解VS Code如何帮助您直接从VS Code激活免费试用版。您也可以从GitHub Copilot注册页面开始激活您的试用。

登录并注册

如果你之前没有在你的GitHub账户中授权VS Code,你会被提示在VS Code中登录GitHub:

Image

在浏览器中,GitHub将为GitHub Copilot请求必要的权限。要批准这些权限,请选择“授权Visual Studio代码”。

激活免费试用版

如果你还没有激活你的免费试用副驾驶,扩展将通知你在VS Code。选择注册GitHub Copilot来激活您的试用版。

Image

您可以在GitHub Copilot文档中了解更多关于Copilot计费的信息。

使用副驾驶员

现在您已经注册了副驾驶并激活了扩展,让我们看看它在行动中的帮助!

GitHub Copilot为许多语言和各种框架提供建议,它特别适用于Python, JavaScript, TypeScript, Ruby, Go, c#和C。

内联的建议

Copilot自动提供建议,以帮助您更有效地编写代码。利用这些建议只需3个步骤:

开始编写代码(或与代码相关的项目,如注释或测试)。

Copilot为各种语言和框架提供建议。对于任何给定的输入,副驾驶可能会提供多种建议。您可以选择使用哪个建议或拒绝所有建议。

收到灰色鬼影(褪色)文本的副驾驶建议。

幽灵文本是占位符文本,将被您从副驾驶中输入或选择的输入所替换。

例如,在一个JavaScript文件中,你可以输入下面的函数头:

<code>function calculateDaysBetweenDates(begin, end) {

副驾驶将提供如下建议:

Image

选择接受副驾驶的建议。

对于任何给定的输入,副驾驶可能会提供多种建议。当Copilot提供建议时,您可以使用Tab键接受建议,或者将鼠标悬停在建议上以查看内联建议工具栏:

Image

在上图中,副驾驶提出了三条建议。您可以使用Tab键接受整个建议,也可以使用Ctrl右划接受部分建议。您可以在建议工具栏中切换建议,也可以使用键盘快捷键“ctrl]”。

如果您不想接受任何建议,您可以继续输入,并且Copilot将在您工作时继续提供建议。

充分发挥副驾驶的作用

你可以做一些事情来帮助(“提示”)副驾驶给你最好的建议。好消息是,您现在可能已经在这样做了,因为它们可以帮助您和您的同事理解您的代码。

当副驾驶有足够的背景来了解你在做什么以及你需要什么帮助时,副驾驶的建议最有效。就像你在向同事寻求特定编程任务的帮助时向他提供背景一样,你也可以在Copilot上做同样的事情。

注意:“提示工程”是你在讨论AI时经常听到的一个短语,它指的是如何以及哪些信息被打包并发送到AI API端点。Copilot扩展为您做这个“提示工程”,但您可以通过提供提示来指导扩展。

提供上下文

打开的文件

Copilot查看编辑器中当前和打开的文件,以分析上下文并创建适当的建议。在使用Copilot时在VS Code中打开相关文件有助于设置此上下文,并让Copilot看到项目的更大画面。

顶层评论

就像你会给同事一个简短的、高层次的介绍一样,你正在处理的文件中的高层注释可以帮助Copilot理解你将要创建的部分的整体背景。

适当的内容和参考

最好手动设置工作所需的包含或模块引用。副驾驶可以提出建议,但你可能最清楚你需要包括哪些依赖项。这也可以让Copilot知道你在提出建议时希望使用哪些框架、库及其版本。

有意义的函数名

正如一个名为 <code>fetchData() 的方法对同事(或几个月后的你)没有多大意义一样, fetchData() 对副驾驶也没有帮助。使用有意义的函数名将有助于Copilot提供一个能做你想做的事情的主体。

特定且范围良好的函数注释

函数名只能是描述性的,不能太长,所以函数注释可以帮助填充Copilot可能需要知道的细节。

Prime副驾驶与示例代码

让Copilot进入正确页面的一个技巧是将示例代码复制并粘贴到您打开的编辑器中,该编辑器接近您正在寻找的内容。提供一个小例子可以帮助Copilot生成与你想要完成的语言和任务相匹配的建议。一旦Copilot开始向您提供您想要并实际使用的代码,您就可以从文件中删除示例代码。当Copilot默认提供较旧的代码建议时,这对于将其启动到较新的库版本尤其有帮助。

始终如一,保持高质量标准

Copilot会锁定你的代码,生成遵循现有模式的建议,因此“垃圾输入,垃圾输出”的格言适用。

保持一个高质量的酒吧可能需要纪律,当你快速和松散地编写代码以使某些东西工作时,你可能想在“黑客”模式下禁用Copilot完成。您可以暂时禁用从副驾驶状态菜单完成。通过选择副驾驶状态栏项,弹出副驾驶状态菜单下拉菜单。

Image

从下拉菜单中,您可以完全禁用补全功能,或者仅针对活动文件类型禁用补全功能,例如Markdown文件。

Image

聊天功能

除了内联建议,您还可以通过聊天界面从Copilot获得帮助。这在几个方面得到支持:

聊天视图:在GitHub Copilot聊天视图中向Copilot寻求任何任务或问题的帮助。

内联聊天:在编写代码时与Copilot交谈,内联在您的文件中。

快速聊天:打开一个聊天下拉菜单,快速回答问题和建议。

聊天功能可通过安装额外的GitHub Copilot聊天扩展。

Image

聊天的观点

当开发一个项目或学习新东西时,在你的问题上获得人工智能的帮助,无论大小,都是很大的帮助。Copilot支持交互式聊天体验,可以理解代码、工作空间、扩展、设置等的上下文。

你可以通过活动栏访问聊天视图:

Image

像VS Code中的其他视图一样,你可以把它移动到任何地方。例如,你可以把它移到辅助侧边栏,这样你就可以同时使用其他视图,比如资源管理器:

Image

副驾驶会提出一些潜在的问题。您可以选择以下任何一个问题,也可以使用聊天框输入您自己的问题:

Image

当你继续提问时,Copilot会保存你的对话记录,并在回应中提供相关的后续问题或命令。

你可以帮助Copilot提供更好的答案,通过在回复的右上方用大拇指向上和向下的图标为回复投赞成票或反对票。这为副驾驶提供了关于它对你的场景有多大帮助的反馈,这样它就可以在未来更好地帮助你。

键盘快捷键

为了方便地使用聊天视图,有几个键盘快捷键:

⌘I -打开“聊天”视图

ctrl -清除聊天视图

⌘↓-将键盘焦点移动到聊天视图输入框

代理和斜杠命令

为了进一步帮助Copilot为你提供更相关的答案,你可以通过代理和斜杠命令来指示问题的范围和意图。

代理就像有专长的专家,他们可以帮助你,你可以在聊天中通过 <code>@ 符号提到他们。目前有两个代理:

@workspace 有工作区中代码的上下文,可以帮助您导航它,找到相关的文件或类。

@vscode 了解VS Code编辑器本身的命令和特性,并且可以帮助你使用它们。

@terminal 有关于集成终端外壳及其内容的上下文。

你可以预先输入一个特定的代理,以帮助副驾驶给你一个更相关的回应。

Image

Agent还可以支持针对特定类型的问题或任务的斜杠命令。例如, <code>@workspace /explain 可用于要求Copilot在您打开的工作空间的上下文中解释文件或代码选择。要查看可用的代理和斜杠命令,键入 / 以获取列表。

Image

@workspace /explain:逐步解释所选代码是如何工作的。

@workspace /fix:针对所选代码中的bug提出修复建议。

@workspace ew:基于自然语言描述创建一个新项目。

@workspace ewNotebook:根据您的描述创建一个新的Jupyter Notebook。

@workspace /tests:为选定的代码生成单元测试。

@vscode /api:关于VS Code扩展开发的问题。

@terminal:说明如何在集成终端中做一些事情。

除了代理和斜杠命令组合之外,还有一些通用的斜杠命令用于清除聊天会话或获取帮助等操作。

/help:打印关于GitHub Copilot的一般帮助。

/clear:清除会话。

代码块

根据您的问题,Copilot Chat可能会在代码块中返回源代码。

Image

将鼠标悬停在代码块上,将显示“复制”和“在光标处插入”选项(ctrl Enter)。

“更多操作”( <code>... )按钮还显示“插入到新文件”和“插入到终端”选项(ctrl Enter)。

Image

如果Copilot Chat检测到代码块中包含命令,则可以直接在集成终端中使用“插入终端”键ctrl Enter运行该命令。该选项将创建或打开活动终端,并插入命令文本,供您运行。

Image

聊天视图位置

默认情况下,聊天视图显示在主侧栏中,但像VS Code中的其他视图一样,您可以将其拖放到任何地方。例如,你可以拖拽聊天视图到面板区域:

Image

您还可以在编辑器区域中打开Chat视图,以获得更大的显示区域。在Chat视图标题栏More Actions ( <code>... )菜单中,在Editor中选择Open Session。

Image

就像任何打开的编辑器一样,您可以将编辑器托管的聊天视图移动到单独的编辑器组中,并使用显示自定义(如Grid layout)在编辑器区域中打开多个聊天会话。

若要将Chat视图移回侧栏,请在Chat视图为活动编辑器时,在编辑器标题栏中使用Open Session in side bar命令。

Image

内联聊天

Copilot的另一个关键功能是在编码时回答内联问题。这允许你在现有编辑器工作流程中利用AI的力量。

在任何文件中,您可以按键盘上的⌘I调出Copilot内嵌聊天:

Image

你可以在编写和迭代代码时问Copilot一些问题,比如“解释这段代码”或“我如何添加功能来做X?”如果您在编辑器中选择了代码,Copilot将把您的问题限定在选择范围内。

一些斜杠命令也可以在内联聊天中工作,例如 <code>/explain 要求Copilot解释代码块或 /test 生成单元测试。

Image

一个有用的命令是 <code>/fix ,它分析错误行或选定的代码,并在diff视图中提出修复建议,以供您查看。在检查并可能修改生成的代码之后,您可以选择接受或丢弃修复。

Image

快速的聊天

如果你想问Copilot一个快速的问题,而不想开始一个完整的聊天视图会话,或者在编辑器中打开内联聊天,你可以使用快速聊天下拉菜单。要打开快速聊天,您可以运行聊天:打开快速聊天或使用⌘I键盘快捷键。

Image

您可以键入问题,使用代理和斜杠命令(如 <code>@workspace /explain 和 @vscode )确定问题的范围,并使用下拉菜单右上角的Open in Chat view按钮将讨论提升到完整的Chat视图会话。

Image

聊天智能动作

为了更容易使用Copilot聊天功能,在编辑器上下文菜单中有一个Copilot菜单组。在编辑器中右键单击并导航到Copilot以查看可用选项:

Image

您可以将这些智能操作应用于当前文件或文件中的选定项。选择一个操作,将在Chat视图或内联聊天中显示相应的代理和/或斜杠命令。例如,为一个函数选择Generate Docs,将打开带有建议文档注释的内联聊天:

Image

副驾驶的其他用途

除了内联补全和聊天,GitHub Copilot还可以帮助完成其他开发任务和工作流程。例如,Copilot可以帮助编写提交消息、修复错误和查找命令。

闪光

当Copilot可以帮助完成任务或工作流时,VS Code会显示一个闪烁图标。将鼠标悬停在闪烁图标上,将描述副驾驶的操作。

Image

生成Git提交消息

Copilot可以帮助您编写GitHub提交消息。在Source Control消息输入框中,选择右侧的sparkle按钮,Copilot将根据您的未决更改创建提交消息。

Image

如果你使用GitHub拉请求和问题扩展,有一个闪光按钮来填写在拉请求创建视图的标题和描述。

终端快速修复

当一个命令在终端中运行失败时,副驾驶会在槽中显示一个闪光,提供一个快速修复来解释发生了什么。

Image

选择Explain using Copilot将用 <code>@terminal #terminalLastCommand 代理和变量填充快速聊天,以帮助纠正最后一个终端命令错误。

Image

命令面板帮助

当试图在命令调色板(⌘+ P)中找到命令时,如果您认为没有看到您想要的命令,您可以使用搜索词运行Ask GitHub Copilot。

Image

Ask GitHub Copilot命令将打开Chat视图并输入您的搜索词。

Image

充分利用副驾驶聊天

本节类似于之前的“充分利用Copilot”,其中有关于从Copilot获得最佳编辑器内联补全的建议。在这里,我们将介绍有效使用Copilot聊天(聊天视图,内联聊天,快速聊天)的技巧。

使用代理和斜杠命令

代理被设计用来收集关于代码库或特定领域或技术的额外上下文。通过使用适当的代理,Copilot Chat可以找到并提供更好的信息发送到Copilot后端。

如果您想询问有关打开项目的问题,请使用 <code>@workspace 。

如果你想了解VS Code的特性和api,可以使用 @vscode 。

斜杠命令帮助副驾驶聊天理解你的意图,当你问一个问题。您是否正在学习代码库( /explain ),或者您希望帮助修复问题( /fix )或创建测试用例( /test )?通过让Copilot Chat知道你想做什么,它可以根据你的任务调整回复,并提供有用的命令、设置和代码片段。

您可以使用自然语言查询写出项目范围或当前任务,但使用代理和斜杠命令更加简洁和明确。

迭代你的解决方案

当你向Copilot Chat求助时,你不会被第一反应所困。您可以迭代并提示Copilot改进解决方案。Copilot既有生成代码的上下文,也有你当前的对话。

下面是一个使用内联聊天创建一个函数来计算斐波那契数列的例子:

Image

也许你更喜欢不使用递归的解决方案:

Image

你甚至可以要求Copilot遵循编码约定或改进变量名:

Image

即使你已经接受了结果,你也可以要求Copilot稍后对代码进行迭代:

Image

额外的资源

恭喜你,你现在已经使用人工智能来增强你的编码了!

你可以在GitHub Copilot文档中阅读更多关于Copilot以及如何在VS Code中使用它的信息。

或者在YouTube上查看VS Code Copilot系列,在那里你可以找到更多的入门内容,以及使用Python、c#、Java、PowerShell等使用Copilot的编程特定视频。

常见问题

副驾驶聊天功能不适合我?

检查每个要求,如果副驾驶聊天不工作:

确保你使用的是最新版本的Visual Studio Code(运行Code: Check for Updates)。

确保你有最新版本的GitHub Copilot和GitHub Copilot聊天扩展。

您的GitHub帐户已登录VS Code必须有一个激活的Copilot订阅(检查您的订阅)。

我在活动栏找不到副驾驶聊天

如果你将聊天视图移出了主侧边栏,例如,你将视图拖到辅助侧边栏,那么聊天视图图标将不再显示在活动栏上。如果关闭辅助侧栏,则Chat视图将不可见,并且可能显示您已失去对Chat视图的访问权限。

有几种方法可以显示聊天视图或将其恢复到活动栏:

视图:显示聊天-打开聊天视图,无论它在哪里托管。

副驾驶状态菜单-状态菜单下拉菜单有一个选项打开GitHub副驾驶聊天。

View: Reset View Locations—将所有视图和面板恢复到默认位置的通用命令。

与任何视图一样,您可以将聊天视图拖放回活动栏,或者从视图标题栏上下文菜单中使用重置位置。

如何禁用副驾驶?

你可以从状态栏暂时停用副驾驶。系统将提示您是否要对所有代码(全局)禁用Copilot,还是仅对活动编辑器中检测到的编程语言(例如Python)禁用Copilot。

我如何在副驾驶上提供反馈?

您可以在GitHub Copilot讨论中提供关于Copilot的内联建议和响应的反馈。

如果您想提供关于Copilot聊天功能的反馈,您可以在vcode - Copilot -release存储库中创建问题。

是否有预发布版本的Copilot扩展?

是的,你可以切换到预发布(每晚)版本的Copilot扩展来尝试最新的功能和修复。在Extensions视图中,右键单击或选择齿轮图标,弹出上下文菜单,选择Switch to Pre-Release Version:

Image

你可以通过扩展详情中的“pre-release”徽章来判断你是否正在运行预发布版本:

Image

 欢迎关注



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。