从上年 AI 大火开始,其实安仔就一直在使用 Github Copilot 的功能了,那时候它还是 Beta 版,可以不用钱薅羊毛,而且它帮安仔做一些重复性的代码工作很适合,可以默默地帮安仔增加摸鱼时间。
但随着最近 Github Copilot 用的程序员越来越多,功能也越来越丰富和强大,安仔感觉也是时候有必要写一篇文章来全方位介绍一下它的功能和使用技巧了。希望以下内容可以帮到大家。
技术背景
在当今快速发展的软件开发领域,效率和创新是推动技术进步的双引擎。GitHub Copilot,作为 GitHub 和 OpenAI 联手打造的人工智能编程助手,正是为了应对这一挑战而诞生。它利用了 OpenAI 的先进自然语言处理技术,特别从一开始就基于 GPT-3 模型的 Codex,通过分析大量的开源代码库,学习编程模式和代码结构,从而为开发者提供智能的代码补全和生成建议。
GitHub Copilot 的开发背景可以追溯到人工智能在自然语言处理(NLP)领域的突破。OpenAI 的 GPT-3 模型在理解和生成自然语言方面取得了革命性进展,这为将 AI 应用于编程领域提供了可能。GitHub,作为全球最大的代码托管平台,拥有丰富的开源代码资源,这为训练 AI 理解编程语言和代码逻辑提供了宝贵的数据。结合两者的优势,GitHub Copilot 成为了现实。(毕竟微软可是 OpenAI 的亲爸,投了那么多钱,肯定想成为第一个吃螃蟹的人...)
功能特点
代码补全:GitHub Copilot 能够根据当前的代码上下文,自动补全代码,包括函数、变量、类等的声明和实现。
根据注释生成代码:开发者可以在注释中描述他们想要实现的功能,GitHub Copilot 会根据这些描述生成相应的代码。
方法和函数生成:当开发者输入一个方法名或函数名时,GitHub Copilot 可以自动生成该方法或函数的代码实现。
生成测试代码:开发者可以请求 Copilot 生成测试代码,以确保新编写的代码的正确性和稳定性。
文档字符串生成:Copilot 能够根据函数的名称和参数,自动生成文档字符串,帮助开发者维护代码文档。
代码审查:虽然这不是 Copilot 的直接功能,但它生成的代码通常遵循良好的编程实践,可以作为代码审查的参考。
提高开发效率:通过智能补全和代码生成,GitHub Copilot 可以帮助开发者快速完成编码任务,减少编写重复代码的时间,让开发者能够专注于解决更复杂的问题。
促进学习和创新:对于新手开发者,GitHub Copilot 提供的代码示例可以帮助他们更快地学习和理解编程概念。对于经验丰富的开发者,它能够激发新的编程思路,促进创新。
代码质量提升:GitHub Copilot 能够根据上下文提供最佳实践和模式,帮助开发者编写更优雅、更健壮的代码。
跨语言支持:GitHub Copilot 支持多种编程语言,使得开发者在多语言项目中能够更加灵活地切换和协作。
持续学习:GitHub Copilot 会根据开发者的反馈和社区的代码更新不断学习和改进,以提供更准确的代码建议。
安装 GitHub Copilot
在这里安仔就使用 IDE - Vscode
来做以下的演示介绍,因为安仔个人认为 Vscode 也是微软自家的产品,兼容性和版本更新速度都是挺好的,而其他的 IDEs, 如 Azure Data Studio
、 JetBrains IDEs
、Vim/Neovim
也都支持 GitHub Copilot 插件,其功能其实大同小异,最多是版本功能上有些许差异,这里就不一一介绍了。
提示:安装 Vscode IDE 工具可以去到这个官方链接下载 - https://code.visualstudio.com/Download
如何安装?
在Vscode
编辑器上点击
Extensions
图标,然后会看到它的
Marketplace
, 然后搜索
copilot
结果,安仔们主要会安装以下两个插件:
Github Copilot;
Github Copilot Chat;
插件安装好后,需要注册登录,登录方式是通过 Github 账号授权登录,一般安装完就会有弹窗提示,跟着做就好了。
安装好后,安仔们可以在编辑器的左侧看到一个小图标,这个就是 Copilot 的图标,起码证明你已经安装成功了。
注意 1: github 开启使用
需要注意的是,授权登录的时候需要到您的 github 账号settings > billing and plans > plans and usage
找到 github copilot 然后enable Copilot Copilot
注意 2: 开启配置代理
Github Copilot 需要用到代理,在 Vscode
中,通过 Settings
搜索proxy
下配置就行。
注意 3: 配置 Github Copilot (可选)
如果你需要配置 GitHub Copilot 的特定设置,如 API 密钥,可以通过 VS Code 的设置进行。点击左下角的齿轮图标,选择 "Settings"(设置),然后搜索 "GitHub Copilot" 相关的设置项进行配置。
费用问题
Github Copilot 是要收费的,对于第一次使用的话,首月是免费的,然后订阅费用是 10 美元一个月,按年是 100 美元。 但毕竟对于普通打工的安仔们来说,这个价格还是有点小贵的,所以如果你是师生的话,可以申请教育优惠,可以免费使用。既然说到教育免费的话,某宝、某夕也有卖的,价格相对于个人版是比较便宜的,但是这个就不是很推荐了,毕竟会有被封号的风险,如果真要买,也建议你开一个 Github 子账号去使用,不要用主号。
核心用法
1.编写代码或注释
在你的项目中打开一个文件,开始编写代码或在代码旁边添加注释(最好先定义好新文件的内容格式或者是文件格式,补全会更准确)。GitHub Copilot 会根据你的代码上下文提供补全建议。
2.接受建议
接受 GitHub Copilot 提供的代码建议,你可以使用 Tab
键。这将自动将建议的代码插入到你的代码中。如果你想要查看更多的建议,可以使用 Alt + ]
(在 Windows/Linux 上)或 Option + ]
(在 macOS 上)来切换到下一个建议,或者使用 Alt + [
(在 Windows/Linux 上)或 Option + [
(在 macOS 上)来切换到上一个建议。
3.使用快捷键
除了 Tab
键,你还可以使用快捷键来快速接受建议。例如,Ctrl + Enter
(在 Windows/Linux 上)或 Cmd + Enter
(在 macOS 上)会接受当前的代码建议并换行。
4.解释代码
选中要解释的代码行,在聊天框中输入/explain
,或者右键点击代码行选择
Copilot > Explain this
。
如果需要中文解释,可以在聊天框中输入
/explain
后跟中文描述。
5.生成测试
使用与解释代码相同的方法,将 /explain
替换为 /tests generate tests
来生成测试代码。
6.行内快捷操作
在编辑器文件中,按 Cmd + I
(在 macOS 上)或 Ctrl + I
(在 Windows/Linux 上)进行行内操作,可以在当前光标所在的行展示一个输入框,用于提问或输入命令。
7.q/a 对话
在代码文件中输入注释符号后,输入 q:
后跟一个问题,然后在下一行输入 a:
,GitHub Copilot 会提供简短的回答。
8.Chat 聊天区域扩大
如果觉得聊天区域不够大,可以点击聊天区域顶部的三个点来扩大聊天区域。
日常使用技巧
以下是安仔日常使用总结到的一些具体使用技巧,希望可以让大家更好地驾驭 Github Copilot。
如何根据注释生成复杂的代码结构
详细描述功能:
在编写注释时,尽量详细地描述你想要的功能。例如,如果你想要实现一个复杂的数据结构,如树的遍历,你可以写一个注释如// Implement a tree traversal algorithm with pre-order, in-order, and post-order traversal
。
使用自然语言:
GitHub Copilot 能够理解自然语言,所以你可以像描述给人类开发者一样描述你的需求。这有助于 Copilot 更准确地理解你的意图并生成相应的代码。分步骤描述:
对于复杂的功能,你可以分步骤描述。例如,如果你想要实现一个复杂的排序算法,可以先描述算法的基本原理,然后描述实现细节,如// Implement the merge sort algorithm with a helper function to merge two sorted arrays
。
利用现有代码:
如果你的项目中已经有相关的代码片段,你可以在注释中引用这些代码,并描述你想要添加的新功能。GitHub Copilot 会尝试将新功能与现有代码集成。迭代和细化:
生成的代码可能需要多次迭代才能达到预期的效果。接受建议后,你可以继续添加注释来细化功能,或者修改现有的注释来获得更好的结果。使用快捷键:
使用快捷键Ctrl + Enter
(在 Windows/Linux 上)或
Cmd + Enter
(在 macOS 上)来快速接受并换行,这样可以更流畅地与 GitHub Copilot 交互。
代码审查:
对于生成的复杂代码结构,务必进行彻底的代码审查。检查逻辑正确性、性能优化以及是否遵循最佳实践。利用 GitHub Copilot 的学习能力:
GitHub Copilot 会根据你的反馈和项目中的代码不断学习和改进。通过提供准确的反馈,你可以训练它更好地理解你的编码风格和项目需求。结合其他工具:
你可以将 GitHub Copilot 与其他开发工具结合使用,如版本控制系统(如 Git)、代码审查工具(如 GitHub Pull Requests)和测试框架,以确保生成的代码质量。常见问题与解决方案总结
在使用 GitHub Copilot 时,你可能会遇到一些常见问题,以下是这些常见的问题及其解决方案:
安装问题:
问题:无法在 Visual Studio Code 中找到 GitHub Copilot 插件。 解决方案:确保你已经安装了最新版本的 Visual Studio Code。在扩展市场中搜索 "GitHub Copilot",如果找不到,尝试重启 VS Code 或检查网络连接。登录问题:
问题:在登录 GitHub Copilot 时遇到问题。 解决方案:确保你的 GitHub 账号已经开通了 GitHub Copilot 服务。如果已经开通,尝试重新登录或检查你的 GitHub 账号设置中的 Copilot 授权。代理配置:
问题:GitHub Copilot 需要代理才能正常工作,但不知道如何在 VS Code 中配置代理。 解决方案:在 VS Code 的设置中搜索 "proxy",然后根据你的网络环境配置代理设置。如果你在公司网络或需要特定代理设置,可能需要联系你的网络管理员获取正确的代理配置。代码生成不准确:
问题:GitHub Copilot 生成的代码不符合预期或存在错误。 解决方案:尝试提供更详细的注释或上下文信息。如果问题持续存在,可以在 GitHub Copilot 的反馈系统中报告问题,或者手动修改生成的代码。性能问题:
问题:GitHub Copilot 的响应速度慢。 解决方案:检查你的网络连接,确保网络稳定。如果问题依然存在,尝试重启 VS Code 或者等待 GitHub Copilot 服务更新。费用问题:
问题:GitHub Copilot 是收费服务,但担心费用问题。 解决方案:GitHub Copilot 提供首月免费试用。对于学生和开源贡献者,可能有优惠或免费计划。可以查看 GitHub Copilot 的官方网站了解详情。安全和隐私:
问题:担心使用 GitHub Copilot 时的代码安全和隐私问题。 解决方案:确保你的代码不包含敏感信息。GitHub Copilot 使用的 Codex 模型是基于大量开源代码训练的,但不会存储你的代码。如果你有特定的安全需求,可以查看 GitHub Copilot 的隐私政策。插件冲突:
问题:安装了其他插件后,GitHub Copilot 的功能受到影响。 解决方案:尝试禁用可能冲突的插件,然后重启 VS Code。如果问题解决,逐个重新启用插件,以确定是哪个插件导致冲突。本文由 mdnice 多平台发布