# 常用快捷键指令
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 Go或Translate 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(建议最新版),确保
node与npx在PATH如使用 Python 版服务器,安装
uv或使用pip,并确保uvx或python在PATH - 准备好必要的访问令牌(如 GitHub PAT、数据库连接串等)
# 添加
- 打开 VS Code 设置:
File → Preferences → Settings(或Ctrl + ,) - 搜索
Copilot Chat MCP Servers或在GitHub Copilot Chat扩展设置中找到 MCP Servers - 填写配置文件(下文有有关格式的说明)
- 保存后,打开 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为生成的逻辑补测试。