# 常用快捷键指令

Copilot 在编辑器中提供了一系列快捷键来提高效率:

功能 Windows/Linux macOS
触发建议 Alt + \ Option + \
接受建议 Tab Tab
接受部分建议(逐词) Ctrl + Cmd +
显示下一个建议 Alt + ] Option + ]
显示上一个建议 Alt + [ Option + [
打开 Copilot 面板(查看多个建议) Ctrl + Enter Ctrl + Enter
在行内开启 Chat Ctrl + I Cmd + I

# Copilot Chat 斜杠命令 (Slash Commands)

在 Copilot Chat 对话框中,使用 / 可以快速调用特定功能:

  • /doc : 为选中的代码生成文档注释。
  • /fix : 分析并修复选中代码中的错误或 Bug。
  • /explain : 解释选中代码的工作原理。
  • /tests : 为选中代码生成单元测试。
  • /simplify : 简化选中代码的逻辑。
  • /help : 获取关于 Copilot 的帮助信息。
  • @workspace : 询问关于整个工作区 / 项目的问题(不仅仅是当前文件)。
  • @vscode : 询问关于 VS Code 编辑器本身设置或功能的问题。
  • @terminal : 在终端中询问如何执行命令或解释报错。

# 自定义指令 (Custom Instructions)

Copilot 允许通过特定文件配置项目级别的全局指令,让 AI 更好地遵循团队规范。

# 用途

Copilot Chat 会在回答问题或生成代码时参考该文件中的内容。你可以定义:

  • 代码风格:总是使用 TypeScript 接口而不是类型别名
  • 技术栈偏好:使用 Tailwind CSS 进行样式设计
  • 测试规范:所有新函数必须包含 Jest 单元测试
  • 控制输出文本:任何时刻都用中文回答问题

# 配置方法

在项目根目录下创建 .github/copilot-instructions.md 文件。

如果不知道如何编写内容,可以向 AI 提问以下问题,帮助生成该文件:

I'm making a ... (Next.js) application with GitHub Copilot, and want you to make a copilot-instructions.md file l can to help guide it. Ask me a series of questions, one at a time, about the project, styling, file structure and coding preferences and then make the file for me.

我正在使用 GitHub Copilot 制作 ... (例如:Next.js) 应用程序,并希望您能够制作一个 copilot-instructions.md 文件可以帮助指导它。问我一个关于项目、样式、文件的一系列问题,一次一个结构和编码偏好,然后为我制作文件。

copilot-instructions.md 示例内容:

# Copilot Instructions
- Use arrow functions for callbacks.
- Prefer `const` over `let`.
- When writing React components, use functional components with Hooks.
- Always add error handling with try-catch blocks for async operations.

# 规范 (Specifications)

# 上下文感知 (Context is King)

Copilot 依赖于打开的文件作为上下文。
在编写代码前,打开相关的定义文件、接口文件或类似的示例文件。Copilot 会读取这些标签页的内容来生成更准确的代码。

# 逐步引导 (Iterative Prompting)

不要试图一次性生成整个复杂的类或模块。
分解任务。先生成函数签名,接受建议后,再生成函数体,最后生成测试用例。

# 命名规范

变量和函数的命名会极大地影响 Copilot 的推断。
使用描述性强的命名(如 calculateTotalPrice 而不是 calc ),Copilot 能更精准地补全逻辑。

# 技巧 (Best Practices && Advanced Techniques)

# 注释转代码

先写注释描述逻辑,再换行触发代码生成
python # 1. 步骤省略... # 2. 步骤省略... # 3. 步骤省略...

# 生成模拟数据

定义数据结构,然后要求生成多行数据
json [ { "id": 1, "name": "Alice", "role": "Admin" }, // 生成更多5个用户... ]

# 代码翻译 (Code Translation)

将代码从一种语言迁移到另一种语言。

  • Use:选中代码,在 Chat 中输入: Convert this function to GoTranslate this SQL query to MongoDB aggregation pipeline

# 解释正则表达式 (Regular Expression)

正则表达式通常难以阅读,Copilot 可以充当翻译器。

  • USe:选中正则字符串,使用 /explain 或直接问 "这段正则匹配什么格式?"。

# 智能重构 (Smart Refactoring)

不仅仅是重命名,Copilot 可以改变代码结构。

  • Use:选中一段 “面条代码”,在 Chat 中输入: Refactor this code to use the Strategy Pattern (重构此代码以使用策略模式)或 Extract this logic into a separate utility function (提取逻辑到工具函数)。

# MCP 集成

Model Context Protocol(MCP)让 Copilot Chat 在受控且可审计的方式下访问外部工具与数据源(如文件系统、Git、数据库、云服务等)。可以将 https://github.com/modelcontextprotocol/servers 中的官方与社区服务器配置到 Copilot 中,显著增强能力。

为 Copilot 添加外部工具

# 前置条件

  • 安装 Node.js(建议最新版),确保 nodenpxPATH

    如使用 Python 版服务器,安装 uv 或使用 pip ,并确保 uvxpythonPATH

  • 准备好必要的访问令牌(如 GitHub PAT、数据库连接串等)

# 添加

  1. 打开 VS Code 设置: File → Preferences → Settings (或 Ctrl + ,
  2. 搜索 Copilot Chat MCP Servers 或在 GitHub Copilot Chat 扩展设置中找到 MCP Servers
  3. 填写配置文件(下文有有关格式的说明)
  4. 保存后,打开 Copilot Chat,使用 @workspace 或直接在对话中调用工具(部分客户端提供 “Tools / 服务器” 面板可见)

如不会添加 MCP 可令输入提示词可让 AI 完成 MCP 的配置

请为我添加以下MCP服务器: ...(MCP)

# 测试

你可以先在终端单独启动服务器确认可用:

# TypeScript/Node:示例 Memory 服务器
npx -y @modelcontextprotocol/server-memory
# Python:示例 Git 服务器(推荐 uvx)
uvx mcp-server-git --repository C:\path\to\repo
# 或使用 pip 安装后运行(示例)
pip install mcp-server-git
mcp-server-git --repository C:\path\to\repo

# 配置示例

以下示例字段对应 “Add Server” 表单中的值(名称 / 命令 / 参数 / 环境):

{
  "mcpServers": {
    // 服务器名称
    "memory": {
        // 命令
      "command": "npx",
        // 参数
      "args": ["-y", "@modelcontextprotocol/server-memory"]
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
        // 环境
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}
  • Memory(内存上下文存储)

    • 名称: memory
    • 传输: stdio
    • 命令: npx
    • 参数: -y , @modelcontextprotocol/server-memory
  • Filesystem(受限文件系统访问)

    • 名称: filesystem
    • 传输: stdio
    • 命令: npx
    • 参数: -y , @modelcontextprotocol/server-filesystem , D:\访问的文件夹
      指定允许访问的根目录,务必只给所需路径。
  • Git(读取仓库信息与操作)

    • 名称: git
    • 传输: stdio
    • 命令: uvx (或 python / pip 方式)
    • 参数: mcp-server-git , --repository , D:\读取的文件夹
  • GitHub(访问 GitHub API)

    • 名称: github
    • 传输: stdio
    • 命令: npx
    • 参数: -y , @modelcontextprotocol/server-github
    • 环境: GITHUB_PERSONAL_ACCESS_TOKEN=你的令牌
  • Postgres(连接数据库)

    • 名称: postgres
    • 传输: stdio
    • 命令: npx
    • 参数: -y , @modelcontextprotocol/server-postgres , postgresql://user:pass@host:port/db

使用时可结合斜杠命令:先 /explain 看工具返回,再 /tests 为生成的逻辑补测试。