github copilot
年初的时候,就听说了Copilot这个插件,但是一直没有去尝试使用。直到最近才去尝试使用,比较了其它几款ai相关插件,总的来说copilot使用体验非常不错。
网上也有大量的介绍copilot的文章,但是对使用技巧介绍不算特别多,自己尝试总结下,希望本文能帮助到大家。
1. 什么是copilot?
GitHub Copilot 是由 GitHub 和 OpenAI 共同开发的人工智能代码辅助工具,俗称:副驾驶,通过插件的方式安装到编辑器(vs code)后,可以帮我们自动补全代码、根据注释生成代码、解释代码、生成测试代码、生成注释等等。
2. 为什么有了GPT还需要copilot?
我们已经可以直接向GPT提问,为啥还需要copilot;
- copilot内嵌到vs code编辑器中,无需离开我们的代码编写环境就能提问、处理、生成代码(省去把问题或者GPT的回答来回粘贴的繁琐)
- copilot生成的代码更贴近项目(它是基于项目当前代码上下文生成的),因此能生成基于当前项目代码风格的代码,可移植性更高。
3. 如何安装?
在编辑器,这里主要说的是vscode编辑器中,安装两个插件:
- github Copilot
- github copilot Chat
插件安装好后,需要注册登录,登录方式是通过github账号授权登录。
3.1 注意1: github开启使用
需要注意的是,授权登录的时候需要到您的github账号settings > billing and plans > plans and usage
找到github copilot 然后enable Copilot Copilot
3.2 注意2: 编辑器中开启配置代理
Copilot Copilot需要用到代理,在vscode中,通过settings 搜索proxy
下配置就行。
3.3 费用问题
copilot是收费的,对于第一次使用,首月免费,然后订阅费用是10美元一个月,按年是100美元。 对于我们普通打工人来说还是稍微贵了点,不过我们有其它便宜的途径。
比如找:x宝、x鱼啥的,他们有提供学生包,不过不太推荐,这种有封github账号的风险,如果实在是要用,那么我建议你用一个子账号,不要用你的主账号。
当然,如果您对这些不太放心,也可以私下找我,推荐一个更靠谱的资源。
4. 使用技巧
好啦!说了这么多终于来到了最重要的环节,如何使用?
总的来说,使用有两大区域块:
- chat区域,直接在聊天框中输入你的问题(PS: 你可以选中你的代码行,这样问问题的时候,它会根据你的代码行生成更可靠的答案)
- 编辑器文件中(比如:自动提示、注释生成代码等等)
我们的所有使用场景,其实都是在上面两大区域完成的。理论上而言,chat区域可以完成所有功能,只是编辑器文件中,更友好点而言:
通常而言,chat区域生成的内容会多一点,全面点。
下面我们具体使用点
4.1 自动建议(Tab)
这种最简单,你在写代码的时候它自动的给你提示,提示的内容是灰色的,您可以按下Tab
键接受建议, 通过Esc
键丢弃提示。
如果对自动建议不满意,可以切换:
alt(option) + ]
下一条建议alt(option) + [
上一条建议
4.2 注释生成代码
这是最强大、也是最使用的功能之一。 您可以先写一段注释,写的越详细,它生成的代码就越满足您的要求。
方式1: 一般而言你写完注释后,它在下一行它会有自动提示,如果没有自动提示。你可以通过alt(option) + \
来触发自动提示。
方式2: 另外一种更好的方式是,此时按下ctrl + enter
输出十种代码实现,哪种好,接受那种就行。 这种方式非常推荐!!!
当然你也可以直接在chat中直接问。
4.3 解释代码
这对于你看代码来说,真的太方便了,不熟悉的语法知识点啥的随便问。 有几种方式:
方式1 选中要解释的代码,在chat聊天框中输入/explain
如果要按照中文解释,多写一些字比如:/explain 用中文解释
方式2 选中要解释代码,右键copilot > explain this
PS: 比较快捷,但是默认输出方式是英文
4.4 生成测试
前面的解释代码的方式一、方式二,换成/tests
generate tests
即可
4.5 行内操作
所有的解释、生成代码、测试、fix等都可以在行内操作进行。
所谓行内,就是在不离开编辑器文件代码的的情况下操作,这个时候只需要按comand + I
这个时候会当前光标所在的行展示一个输入框,在输入框可以提问,也可以输入/explain``/tests
等等。
有时候对自动生成的代码不满意,可以选中代码,对它提要求,可以在行内操作完成。
4.6 q/a对话
在任意代码文件中输入注释符号,然后输入q:
后跟一个问题,比如// q: xx问题
, 在下一行中输入// a:
copilot会提供最简短的回答内容。
当前还没感觉到这个可以用来做啥。
4.7 chat聊天区域扩大
如果我们嫌chat区域不够大,又或者我想用这个chat聊天来学习,如果始终还是在左侧区域那么久显得非常小了,我们可以点击chat顶部的三个点扩大后使用,变大了非常爽!
4.8 快捷键总结
alt(option) + \
手动触发提示alt(option) + ]
下一条建议alt(option) + [
上一条建议ctrl + enter
十种代码实现comand + I
行内操作