Markdown Copilot for Visual Studio Code
December 9, 2025 · View on GitHub
Markdown Copilot for Visual Studio Code
Markdown Copilot 是适用于 VS Code 的 LLM API 客户端。
Markdown Copilot 使您能够完全替代 OpenAI ChatGPT WebUI,提供更优越的功能,例如:
- 利用Model Context Protocol服务器
- 以 Markdown 形式保存对话历史
- 同时进行多个对话
- 分支对话
- 随时编辑之前的对话并继续对话
- 根据对话命名文件
- 标题对话
- 根据文件类型智能粘贴剪贴板内容
注意:使用此扩展需要配置 OpenAI, Azure OpenAI, OpenRouter 或本地 Ollama 实例。配置方法如下:
- OpenAI API Key
- Azure OpenAI 快速入门
- OpenRouter API Keys:支持 OpenAI, Claude, Gemini, Llama 3 等
- 本地 Ollama 实例:可在本地使用 Llama 3.3, DeepSeek-R1, Phi-4, Mistral, Gemma 2 等模型
🛰️ 可用后端
通过 markdown.copilot.backend.protocol 选择后端:
- OpenAI:Chat Completions(默认)。
- OpenAI Responses:调用 Responses API,并可使用 OpenAI 内置的
web_search工具。 - Azure:将
backend.baseUrl指向部署的 chat/completions URL;若可用则使用webSearchPreview。 - Google Vertex:将
backend.baseUrl设置为服务账号 JSON 的 URI(如file:///path/key.json),选择 Vertex 模型(如gemini-3-pro-preview)。 - OpenRouter 和 Ollama:配置各自的端点和 API Key 以使用托管或本地模型。
🌟 主要特性
⚡ MCP 服务器与工具调用
Markdown Copilot 支持工具调用(function calling),并可从 Model Context Protocol (MCP) 服务器 获取更多工具。将需要的工具写在 json copilot-tools 或 yaml copilot-tools 的数组中,与提示一起选中后执行 💡 Markdown Copilot: 继续。
工具前缀
@内置分组:@context(context_summary_and_new, context_reset_and_new),@file(fs_read_file, fs_read_dir, fs_find_files),@eval!(eval_js),@web(后端的 web search;在 OpenAI Responses 或具备webSearchPreview的 Azure 可用)。^VS Code LM 工具 或 在 VS Code 中添加的 MCP 服务器:值是用于过滤工具提供方的正则,如^copilot(内置 Copilot 工具)或^my-mcp-server(指向已配置的 MCP 服务器)。请参见 Add an MCP server 了解添加方法。- 无前缀:单个工具,如
web_search、fs_read_file,或在copilot-tool-definition块中定义的自定义工具。
示例:列出可用工具
请列出你可以使用的所有工具。
```json copilot-tools
["^copilot"]
```
示例:组合 Web 搜索与文件读取
请先进行 Web 搜索,再读取文件后回答。
```json copilot-tools
["@web", "fs_read_file"]
```
Web 搜索(OpenAI Responses / Azure webSearchPreview)
查找最新的 VS Code 发行说明并进行总结。
```json copilot-tools
["@web"]
```
也可以显式请求该工具:
最新的 Python 稳定版是哪个?
```json copilot-tools
["web_search"]
```
关于如何添加 MCP 服务器,请参考 Use MCP servers in VSCode: Add an MCP server。
🔀 并行编辑
同时执行多个自动编辑,通过不必等待一个编辑完成就开始另一个编辑,从而提高您的生产力。
📝 上下文编辑
Markdown Copilot根据上下文回答选文。
使用时,选择文本范围并从代码操作建议中选择 💡 Markdown Copilot: 继续。
或使用快捷方式快速访问:
| 命令 | Windows / Linux | Mac |
|---|---|---|
触发建议 | Ctrl+Space 或 Ctrl+I | ⌃+Space 或 ⌘+I |
ᝰ 覆盖选项
使用覆盖选项自定义 Markdown Copilot 的行为。这允许您直接在文档中控制响应长度或 AI 模型等设置。
要使用覆盖选项,只需包含一个标记为 json copilot-options 或 yaml copilot-options 的 JSON 或 YAML 代码块,并在其中填入您希望的设置,然后选择此块及您的文本并从代码操作建议中选择 💡 Markdown Copilot: 继续。
示例: 让 Markdown Copilot 用自定义的响应长度和模型介绍自己 (JSON):
自我介绍。
```json copilot-options
{"max_tokens":50,"model":"gpt-3.5-turbo"}
```
示例: 让 Markdown Copilot 用自定义的响应长度和模型介绍自己 (YAML):
自我介绍。
```yaml copilot-options
max_tokens: 50
model: gpt-3.5-turbo
```
示例: 使用 o1-preview 模型 (JSON)
o1-preview 模型不支持系统消息,因此我们将使用 **System(Override):** 清除系统消息。
**System(Override):**
**User:**
自我介绍。
```json copilot-options
{"model":"o1-preview","temperature":1}
```
示例: 使用本地 Ollama 的 llama2 模型 (JSON)
自我介绍。
```json copilot-options
{"model":"llama2","baseURL":"http://localhost:11434/v1"}
```
示例: 使用本地 Ollama 的 llama2 模型 (YAML)
自我介绍。
```yaml copilot-options
model: llama2
baseURL: http://localhost:11434/v1
```
更多配置选项,请参考 OpenAI API: 创建聊天完成。
📛 命名和另存文件
Markdown Copilot 允许您根据文件内容命名和另存文件。
要使用此功能,请选择您要命名和保存的编辑器,然后使用 Markdown Copilot: 命名和另存为... 命令。
或者使用快捷方式快速访问:
| Windows / Linux | Mac |
|---|---|
| Ctrl+Shift+P > Name and Save As | ⌘+⇧+P > Name and Save As |
🏷️ 为活动上下文添加标题
Markdown Copilot 可以根据对话历史记录为对话添加标题。
对话标题以# Copilot Context: 开头的行表示。
要使用此功能,请将光标移至您要标题的上下文,然后使用 Markdown Copilot: 活动上下文标题 命令。
或使用快捷方式快速访问:
| Windows / Linux | Mac |
|---|---|
| Ctrl+Shift+P > Title active context | ⌘+⇧+P > Title active context |
🪄 总结并开启新的上下文
Markdown Copilot 允许您先对当前上下文进行总结,然后根据该总结开启新的上下文。 此功能有助于防止对话上下文变得过长,从而影响模型的处理效果,同时也能让您更轻松地掌握对话的要点。
要使用此功能,请将光标移动到要总结的上下文,然后使用 Markdown Copilot: 总结并开始新上下文 命令。
| Windows / Linux | Mac |
|---|---|
| Ctrl+Shift+P > Summarize and New Context | ⌘+⇧+P > Summarize and New Context |
📋⤵ 粘贴为美化文本
Markdown Copilot 允许您以智能方式将剪贴板内容粘贴到文档中,并根据文件类型进行适配。
此功能确保粘贴的内容能够无缝集成到您的编辑文件中,避免不必要的格式问题。
要使用此功能,请选择您希望粘贴内容的位置,然后使用 Markdown Copilot: 粘贴为美化文本 命令。
或者使用快捷键快速访问:
| Windows / Linux | Mac |
|---|---|
| Ctrl+Shift+P > Paste as pretty | ⌘+⇧+P > Paste as pretty |
📥 导入其他 Markdown 文件
Markdown Copilot 允许您轻松地将其他 Markdown 文件导入当前文档。 这使得引用或重用其他文档的内容成为可能。
要导入其他 Markdown 文件,请使用 @import 指令。
在此指令后,用双引号括起来,指定您想要导入的文件的路径。
相对路径示例: 从当前文件的相对位置导入 another-markdown.md。
@import "path/to/another-markdown.md"
绝对路径示例: 使用从工作区根目录开始的绝对路径导入 toplevel-markdown.md。
@import "/toplevel-markdown.md"
如果当前文档尚未保存,因为文件路径未确定,您必须使用绝对路径来指定要导入的其他 Markdown 文件。
🎛 上下文控制
使用上下文缩进和语法颜色进行可视化上下文突出显示。
♯ Markdown 中的上下文标记
活动上下文是通过从光标行追溯上下文缩进来确定的。
可以使用以 # Copilot Context 开头的行强制执行上下文保护。
如果您选择 Then say "take care". 并选择 💡 Markdown Copilot: 继续,您将得到以下输出: hello → good bye → take care。
更复杂的示例: 上下文跨越 take care 行继续。
指定发言人: 您可以在行首使用特殊的 Markdown 符号来指定发言人。
| Markdown | 意思 |
|---|---|
**User:** | 用户是发言人 |
**Copilot:** | Markdown Copilot 是发言人 |
**System(Override):** | 覆盖系统消息 |
**System:** | 指定附加的系统消息 |
⤷ 上下文缩进
通过直观的操作简化上下文缩进级别的编辑。
选择文本并从代码操作建议中选择 💡 Markdown Copilot: 缩进上下文行 或 💡 Markdown Copilot: 减少上下文行缩进。
或使用这些快捷方式:
| 命令 | Windows / Linux | Mac |
|---|---|---|
缩进上下文行 | Ctrl+Alt+L | ⌘+⌥+L |
减少上下文行缩进 | Ctrl+Alt+Shift+L | ⌘+⌥+⇧+L |
📋 先决条件
- 需要访问 OpenAI 或 Azure OpenAI API。详情请访问 OpenAI API或Azure OpenAI Quickstart。
- 必须安装 Visual Studio Code。从 Visual Studio Code 下载页面下载。
🔌 提升您的 Markdown 体验
将 Markdown Copilot 与这些扩展结合使用,获得更强大的 Markdown 体验:
- Markdown All in One: 全面的 Markdown 支持(键盘快捷键、目录、自动预览等)。
- Snippets: 为 VS 代码中的代码片段增效 - 无需退出编辑器即可管理代码片段。
- Markdown Preview Mermaid Support: 为 VS Code 内置的 markdown 预览添加 Mermaid 图表和流程图支持。
- Markdown Preview Enhanced: Markdown Preview Enhanced 是一款为 Visual Studio Code 编辑器编写的超级强大的 Markdown 插件。 这款插件意在让你拥有飘逸的 Markdown 写作体验。
- Markdown+Math: 使用 LaTeX 数学增强您的 Markdown ... 包括宏等。
🔄 更新日志
有关详细更新,请参阅 更新日志。
🤝 参与其中
- 通过 GitHub Issues 报告错误或建议功能。
- 通过在 Visual Studio Marketplace 上留下评论分享您的反馈。