GitHub Copilot Chat已经出来一段时间了,很多开发者都在用。
但我发现,大部分人只是用它来问一些简单的问题,比如"这段代码有什么bug""帮我写一个函数"。其实,Copilot Chat有很多进阶用法,能大幅提升编程效率。
这篇文章,我想分享一些我在使用Copilot Chat过程中总结的进阶技巧。这些技巧可能不是所有人都知道,但用好了能让你的编程效率翻倍。
技巧一:用斜杠命令快速触发功能
Copilot Chat支持很多斜杠命令,能快速触发特定功能。很多人不知道这些命令,还是用自然语言来描述需求,效率低很多。
常用的斜杠命令包括:
/explain:解释选中的代码。当你看不懂一段代码的时候,选中它,输入/explain,Copilot会给你详细的解释,包括代码的功能、逻辑、关键变量等。/fix:修复选中代码中的问题。如果你的代码有bug或者报错,选中它,输入/fix,Copilot会分析问题并给出修复方案。/tests:为选中的代码生成单元测试。选中一个函数或者一个类,输入/tests,Copilot会自动生成对应的测试用例。/doc:为选中的代码生成文档注释。选中函数,输入/doc,Copilot会生成规范的文档注释,包括参数说明、返回值、异常等。/optimize:优化选中的代码。Copilot会分析代码的性能和可读性,给出优化建议。/simplify:简化选中的代码。如果代码太复杂,用这个命令可以让Copilot帮你简化。
这些斜杠命令比用自然语言描述更准确、更高效。建议把常用的命令记下来,养成用命令的习惯。
技巧二:善用上下文选择
Copilot Chat的回答质量,很大程度上取决于你提供的上下文。很多人问问题的时候,只输入一句话,没有提供足够的上下文,结果Copilot的回答很泛泛,没有针对性。
善用上下文选择,能让Copilot的回答更准确。
第一个方法是,选中相关代码再提问。比如,你想问"这个函数怎么优化",先把函数代码选中,然后再提问。这样Copilot能看到具体的代码,给出的建议会更有针对性。
第二个方法是,用@引用文件。在Copilot Chat中,你可以用@文件名来引用项目中的文件。比如,你可以问@utils.py 这个文件里有哪些可以复用的函数,Copilot会读取这个文件的内容来回答。
第三个方法是,用#引用符号。你可以用#函数名或者#类名来引用代码中的符号。比如,#UserService 这个类的设计有什么问题,Copilot会定位到这个类来分析。
第四个方法是,提供项目背景。在提问的时候,可以简单介绍一下项目的技术栈、架构、业务背景。比如,"这是一个React项目,用了TypeScript和Redux,下面这段代码...",有了这些背景信息,Copilot的回答会更符合项目的实际情况。
技巧三:用Agent模式处理复杂任务
Copilot Chat有一个Agent模式,能处理更复杂的任务。很多人不知道这个功能,或者不知道怎么用。
Agent模式和普通模式的区别是:普通模式下,Copilot只是回答你的问题;而Agent模式下,Copilot会主动规划任务、执行步骤、修改文件,甚至运行命令。
开启Agent模式很简单,在聊天框输入@workspace,或者在设置中开启"使用代理模式"。
Agent模式适合处理这些任务:
- 跨文件的重构。比如,"把所有的API调用从axios改成fetch",Agent会搜索项目中所有的axios调用,逐个修改。
- 新功能开发。比如,"添加一个用户登录功能,包括前端页面和后端接口",Agent会规划需要创建哪些文件、修改哪些代码,然后逐步实现。
- Bug排查。比如,"用户反馈登录后页面白屏,帮我排查原因",Agent会分析相关代码,找出可能的问题。
- 代码审查。比如,"审查最近一次提交的代码,看看有没有问题",Agent会查看git diff,给出审查意见。
使用Agent模式的时候,要注意:任务描述要清晰,目标要明确。如果任务太复杂,可以拆分成几个小任务,逐个完成。另外,Agent修改代码之后,一定要自己检查一遍,确保修改是正确的。
技巧四:自定义指令和系统提示
Copilot Chat允许你自定义指令和系统提示,让它更符合你的编码习惯和项目规范。
第一个自定义是,在项目根目录创建.github/copilot-instructions.md文件。在这个文件里,你可以写项目的编码规范、技术栈说明、架构设计等信息。Copilot会读取这个文件,在回答问题的时候遵循这些规范。
比如,你可以在文件里写:
- 本项目使用React 18 + TypeScript + Vite
- 组件使用函数式组件和Hooks
- 样式使用CSS Modules
- 命名规范:组件用PascalCase,变量用camelCase
- 所有函数必须有JSDoc注释
有了这些指令,Copilot生成的代码会更符合项目规范,减少后续修改的工作量。
第二个自定义是,在VS Code的设置中配置Copilot的系统提示。你可以设置全局的编码偏好,比如"总是使用ES6+语法""优先使用函数式编程""生成的代码必须包含错误处理"等。
第三个自定义是,创建自定义的斜杠命令。你可以在设置中定义自己的斜杠命令,比如/review代表"全面审查代码,包括性能、安全、可读性",/api代表"生成RESTful API,包含请求和响应的TypeScript类型定义"。
技巧五:用Copilot Chat学习新技术
Copilot Chat不只是一个写代码的工具,还是一个很好的学习工具。
当你学习新技术的时候,可以用Copilot Chat来加速学习过程。
第一个用法是,概念解释。遇到不懂的概念,直接问Copilot。比如,"什么是React Server Components?它和普通组件有什么区别?"Copilot会用通俗易懂的语言给你解释,还会给你示例代码。
第二个用法是,代码对比。如果你想知道两种写法的区别,可以让Copilot对比。比如,"对比一下useEffect和useLayoutEffect的区别,分别在什么场景下使用?"Copilot会详细对比两者的差异和适用场景。
第三个用法是,渐进式学习。你可以让Copilot从简单到复杂地教你一个技术。比如,"我想学Rust,先给我讲基础语法,然后给我一些练习题",Copilot会循序渐进地教你。
第四个用法是,代码翻译。如果你熟悉一种语言,想学另一种语言,可以让Copilot把你熟悉的代码翻译成新语言。比如,"把这段Python代码翻译成Go语言,并解释两者的区别"。
用Copilot Chat学习的时候,要注意:它的回答不一定完全正确,尤其是比较新的技术。重要的知识点,最好还是查阅官方文档确认。
技巧六:结合终端和Git使用
Copilot Chat可以和终端、Git结合使用,提升开发效率。
第一个结合是,终端命令生成。如果你不知道某个命令怎么写,可以直接问Copilot。比如,"怎么用git撤销最近一次提交,但保留修改?"Copilot会告诉你具体的命令,还可以直接在终端中执行。
第二个结合是,Git提交信息生成。写完代码之后,可以让Copilot根据git diff生成提交信息。比如,"根据这次的修改,生成一个符合Conventional Commits规范的commit message",Copilot会分析改动,生成规范的提交信息。
第三个结合是,代码变更解释。如果你想看别人提交的代码,可以让Copilot解释。比如,"解释一下最近三次提交都改了什么",Copilot会查看git log和diff,给你总结。
第四个结合是,调试辅助。当程序报错的时候,可以把错误信息贴给Copilot,让它帮你分析原因。比如,"这个错误是什么意思?怎么解决?"Copilot会分析错误信息,给出可能的原因和解决方案。
技巧七:用Inline Chat做局部修改
除了侧边栏的Chat窗口,Copilot还有Inline Chat功能,可以在代码编辑器中直接对话。
选中一段代码,按Ctrl+I(Mac是Cmd+I),就会弹出Inline Chat输入框。你可以直接输入指令,Copilot会在当前位置修改代码。
Inline Chat适合做这些事情:
- 局部代码修改。比如,"给这个函数加上错误处理""把这个循环改成用map""优化这段代码的性能"。
- 代码生成。比如,在空行处打开Inline Chat,输入"写一个防抖函数",Copilot会直接在当前位置生成代码。
- 快速修复。比如,代码有红色波浪线,选中后打开Inline Chat,输入"修复这个问题",Copilot会直接修复。
Inline Chat的优势是快,不需要切换到侧边栏,修改的结果直接显示在代码中,还可以对比修改前后的差异,选择接受或者拒绝。
技巧八:管理对话历史和复用
Copilot Chat的对话历史是可以管理和复用的,很多人忽略了这一点。
第一个管理是,重命名对话。当你开启一个新的对话时,可以给它起一个有意义的名字,比如"用户登录功能开发""性能优化讨论"。这样以后想找之前的对话就很方便。
第二个管理是,收藏对话。对于有价值的对话,可以收藏起来,以后随时查看。比如,Copilot给你解释了一个复杂的算法,你可以收藏这个对话,以后复习的时候看。
第三个管理是,导出对话。有些重要的对话,可以导出为Markdown文件,保存到项目中或者分享给团队。比如,一次深入的架构讨论,可以导出后作为团队的技术文档。
第四个复用是,复制Prompt。如果你发现某个Prompt效果很好,可以保存下来,以后重复使用。比如,"生成符合项目规范的React组件,包含TypeScript类型、CSS Modules、错误处理",这个Prompt可以反复使用。
一些注意事项
最后,说一些使用Copilot Chat的注意事项。
第一,不要盲目信任。Copilot生成的代码不一定完全正确,尤其是涉及到安全、性能、边界情况的时候。一定要自己检查和测试,确保代码是正确的。
第二,注意隐私和安全。不要把敏感信息(比如API密钥、密码、客户数据)贴给Copilot。在企业环境中,要遵守公司的数据安全政策。
第三,保持自己的思考。Copilot是辅助工具,不是替代品。不要因为有了Copilot就不动脑子了,要理解它生成的代码,知道为什么这么写。
第四,持续学习。AI工具更新很快,Copilot也在不断进化。要关注新功能和新用法,持续学习,才能充分发挥它的价值。
写在最后
GitHub Copilot Chat是一个很强大的AI编程助手,但大部分人只用了它的一小部分功能。
掌握了这些进阶技巧,你能更高效地使用Copilot,让它真正成为你的编程搭档,而不只是一个代码补全工具。
当然,工具只是工具,最重要的还是你自己的编程能力和思考能力。AI能帮你提高效率,但不能代替你成为一个优秀的程序员。
希望这些技巧能帮到你。如果你有其他好用的技巧,欢迎在评论区分享。
评论(0)
暂无评论,快来抢沙发~
评论功能仅对会员开放,请先登录
登录