参加你附近的 ,了解 VS Code 中的 AI 辅助开发。

VS Code 中 Copilot 的提示和技巧

本文提供了优化在 Visual Studio Code 中使用 GitHub Copilot 的开发体验的提示和技巧。

VS Code 中使用 Copilot 的清单

使用以下清单充分利用 Copilot

  1. 选择合适的 Copilot 工具使用针对编辑、提问或保持代码编写流畅性而优化的工具。

  2. 使用说明文件个性化 Copilot使用自定义说明来获取与您的风格和编码实践相匹配的代码建议。

  3. 编写有效的提示并提供上下文获得最相关的响应。

  4. 索引您的工作区获取关于您的代码库问题的准确响应。

  5. 选择您的 AI 模型在用于快速编码或规划/推理的模型之间进行选择。

  6. 重用提示通过保存和重用团队中特定任务的提示来节省时间。

选择合适的 Copilot 工具

根据您的任务,您可以在不同的 Copilot 工具之间进行选择。

工具 用例
代码补全 在保持流畅性的同时简化编码。
在编辑器中编写代码片段、变量名和函数时,接收内联建议。
聊天 进行持续的聊天对话,用于头脑风暴设计思想或获取代码建议,可选择调用特定领域的聊天参与者。
选择将特定的代码建议应用到您的代码库中。
编辑 使用自然语言启动编码编辑会话。
自动将大型代码更改应用到工作区中的多个文件。
代理模式 通过启动代理编码流程来实施高级要求。
Copilot 自主调用多个工具来规划和实施所需的代码更改和任务。

使用说明文件个性化 Copilot

当 Copilot 生成代码或回答问题时,它会尝试匹配您的编码实践和偏好,例如您使用的库或如何命名变量。但是,它可能并不总是有足够的上下文来有效地做到这一点。例如,如果您使用特定的框架版本,您需要在提示中提供额外的上下文。

为了增强 AI 响应,您可以使用“说明文件”来提供关于您团队编码实践、工具或项目具体细节的上下文信息。然后,您可以将这些说明附加到您的聊天提示中,或让它们自动应用。

为您的工作区启用说明文件

  1. 从命令面板运行“Chat: New Instructions File”命令。

    此命令在“.github/instructions”文件夹中创建一个“.instructions.md”文件。

  2. 以 Markdown 格式将您的说明添加到文件中。例如

    # Custom instructions for Copilot
    
    ## Project context
    This project is a web application built with React and Node.js.
    
    ## Indentation
    We use tabs, not spaces.
    
    ## Coding style
    Use camelCase for variable names and prefer arrow functions over traditional function expressions.
    
    ## Testing
    We use Jest for unit testing and Playwright for end-to-end testing.
    
  3. (可选)向“applyTo”元数据字段添加一个 glob 模式,以指定说明适用的文件。

    ---
    applyTo: "**/*.ts"
    ---
    Coding practices for TypeScript files.
    ...
    

获取关于在 VS Code 中使用说明文件的更多详细信息。

提示工程

您可以通过使用有效的提示来提高 Copilot 响应的质量。精心设计的提示可以帮助 Copilot 更好地理解您的要求,并生成更相关的代码建议。

  • 先泛后专。

    Generate a Calculator class.
    Add methods for addition, subtraction, multiplication, division, and factorial.
    Don't use any external libraries and don't use recursion.
    
  • 给出您想要内容的示例。

    Generate a function that takes a string and returns the number of vowels in it.
    Example:
    findVowels("hello") returns 2
    findVowels("sky") returns 0
    
  • 将复杂任务分解为更简单的任务。

    与其让 Copilot 生成一个膳食计划应用,不如将其分解为更小的任务

    • 生成一个函数,它接受一个配料列表并返回一个食谱列表。
    • 生成一个函数,它接受一个食谱列表并返回一个购物清单。
    • 生成一个函数,它接受一个食谱列表并返回一周的膳食计划。
  • 提供正确的上下文,例如代码选择、文件、终端输出等。

    例如,使用“#codebase”变量来引用整个代码库

    Where is the database connection string used in #codebase?
    
  • 迭代您的提示。

    提供后续提示以完善或修改响应。例如

    • “编写一个计算数字阶乘的函数。”
    • “不要使用递归,并通过缓存进行优化。”
    • “使用有意义的变量名。”
  • 保持聊天历史相关。

    Copilot 使用对话历史提供上下文。如果过去的提问和响应不相关,请将其从历史中删除。或者,如果您想更改上下文,请开始一个新的会话。

获取关于提示工程的更多详细信息。

在 GitHub Copilot 文档中查找与 Copilot 一起使用的实用提示示例

提供正确的上下文和工具

通过相关的上下文丰富您的提示,以在聊天中获得更准确和相关的响应。使用正确的工具,您可以提高开发人员的生产力。

  • 代理模式下,选择工具按钮以配置您要使用的工具,或将它们显式添加到您的提示中。
  • 使用“#codebase”让 Copilot 通过执行代码搜索自动查找正确的文件。
  • 使用“#fetch”工具从网页获取内容,或使用“#githubRepo”在 GitHub 存储库上执行代码搜索。
  • 通过使用“#<文件名称>”、“#<文件夹名称>”或“#<符号>”在您的提示中引用文件、文件夹或符号。
  • 将文件、文件夹或编辑器选项卡拖放到聊天提示中。
  • 将问题、测试失败或终端输出添加到您的聊天提示中,以获取特定场景的上下文。
  • 将图像或屏幕截图添加到您的提示中,让 Copilot 分析图像。
  • 在代理模式下,提示预览您的应用程序,以使用内置的简单浏览器直接打开它。

当您使用代理模式时,Copilot 会自主为您查找相关文件和上下文。

获取关于向聊天提示添加上下文的更多详细信息。

可重用提示

提示文件允许您将特定任务的提示及其上下文和说明保存在 Markdown 文件中。然后,您可以在聊天中附加和重用该提示。如果将提示存储在工作区中,还可以与团队共享。

创建可重用提示

  1. 使用命令面板中的“Chat: New Prompt File”命令创建一个提示文件。

    此命令在工作区根目录的“.github/prompts”文件夹中创建一个“.prompt.md”文件。

  2. 以 Markdown 格式描述您的提示和相关上下文。

    例如,使用此提示生成新的 React 表单组件。

    Your goal is to generate a new React form component.
    
    Ask for the form name and fields if not provided.
    
    Requirements for the form:
    * Use form design system components: [design-system/Form.md](../docs/design-system/Form.md)
    * Use `react-hook-form` for form state management:
    * Always define TypeScript types for your form data
    * Prefer *uncontrolled* components using register
    * Use `defaultValues` to prevent unnecessary rerenders
    * Use `yup` for validation:
    * Create reusable validation schemas in separate files
    * Use TypeScript types to ensure type safety
    * Customize UX-friendly validation rules
    
  3. (可选)添加关于如何在聊天中运行提示的元数据。使用“mode”字段指定聊天模式,使用“tools”字段指定要使用的代理模式工具。

    ---
    mode: 'agent'
    tools: ['githubRepo', 'search/codebase']
    description: 'Generate a new React form component'
    ---
    Your goal is to generate a new React form component based on the templates in #githubRepo contoso/react-templates.
    
    Requirements for the form:
    * Use form design system components: [design-system/Form.md](../docs/design-system/Form.md)
    * Use `react-hook-form` for form state management:
    * Always define TypeScript types for your form data
    
  4. 在聊天输入字段中键入“/”,然后是提示文件名,以运行命令。

    例如,键入“/new-react-form”以运行名为“new-react-form.prompt.md”的提示文件。

开始使用提示文件

选择您的 AI 模型

Copilot 提供不同的 AI 模型供您选择。有些模型针对快速编码任务进行了优化,而另一些则更适合较慢的规划和推理任务。

模型类型 模型
快速编码
  • GPT-4o
  • Claude Sonnet 3.5
  • Claude Sonnet 3.7
  • Gemini 2.0 Flash
推理/规划
  • Claude Sonnet 3.7 Thinking
  • o1
  • o3-mini

通过使用聊天输入字段中的模型选择器来选择最适合您需求的模型。

在 GitHub Copilot 文档中了解更多关于Copilot Chat 的 AI 模型

工作区索引

Copilot 使用索引快速准确地搜索您的代码库中相关的代码片段。此索引可以由 GitHub 维护,也可以本地存储在您的机器上。

对于 GitHub 存储库,您可以使用基于GitHub 代码搜索的工作区远程索引。这允许 Copilot 即使代码库非常大,也能非常快速地搜索整个代码库。

获取关于工作区索引的更多详细信息。

© . This site is unofficial and not affiliated with Microsoft.