从一次"白忙活"说起
今天我花了一整天开发一个语音控制 Copilot 的插件,结果发现 VS Code 早就自带了这功能。
但这次踩坑让我意外发现了一个更重要的事情:Claude Code 在 VS Code 里的体验,其实可以比 CLI 更丝滑。
为什么在 VS Code 里用 Claude Code?
Claude Code 官方推荐的方式是在终端里运行 CLI:
claude
这样能用,但有几个痛点:
- 没有语法高亮的代码预览
- 文件编辑需要切换窗口确认
- 上下文管理全靠手动
/add
而在 VS Code 里,通过 GitHub Copilot 扩展调用 Claude(是的,Copilot 现在支持选择 Claude 模型),你可以获得:
| 功能 | CLI | VS Code |
|---|---|---|
| 代码高亮 | ❌ | ✅ |
| 文件内编辑预览 | ❌ | ✅ |
| 自动上下文感知 | 部分 | ✅ |
| 快捷键触发 | ❌ | ✅ |
| 与 Copilot 无缝切换 | ❌ | ✅ |
更重要的是,通过合理配置,你可以让 Claude 记住你的项目偏好、编码风格,甚至过去的对话内容。
配置一:CLAUDE.md 项目上下文
这是最基础也最重要的配置。在项目根目录创建 CLAUDE.md:
# CLAUDE.md
## Project Overview
这是 Polly 的个人网站,使用 Zola 静态站点生成器...
## Commands
zola serve # 本地开发
zola build # 构建发布
## Architecture
/content/blog/ - 博客文章
/templates/ - Tera 模板
/static/ - 静态资源
## Coding Style
- 使用中文注释
- 函数命名用 snake_case
- 博客文件命名:YYYYMMDD-slug/index.md
Claude Code 会自动读取这个文件作为项目上下文。每次对话,它都知道:
- 这是什么项目
- 怎么运行和构建
- 代码规范是什么
效果:问"帮我写个博客文章"时,Claude 会自动使用正确的 frontmatter 格式和文件位置。
配置二:Skills 系统
CLAUDE.md 解决了"项目是什么",但没解决"任务怎么做"。
这就是 Skills 的作用——让 Claude 学会特定领域的专业知识。
在 .claude/skills/ 目录下,每个文件夹是一个 Skill:
.claude/skills/
├── blog-writer/ # 博客写作专家
│ └── SKILL.md
├── paper-writer/ # 论文写作专家
│ └── SKILL.md
├── memory-keeper/ # 记忆管理
│ └── SKILL.md
└── mcp-builder/ # MCP 服务器开发
└── SKILL.md
以 blog-writer 为例,SKILL.md 里定义了:
- 触发词:"写博文"、"记录项目"
- 写作流程:理解需求 → 生成大纲 → 撰写正文 → 输出文件
- Frontmatter 规范
- 写作风格指南
当你说"帮我写篇博客",Claude 会自动加载这个 Skill,按照预设流程执行。
这就像给 Claude 安装了"职业培训模块"。
配置三:Memory 记忆系统
Skills 让 Claude 知道"怎么做",但它还是不"认识"你。
每次对话,Claude 都是从零开始。它不知道:
- 你上周在做什么项目
- 你之前做过什么决策
- 你有什么长期目标
我的解决方案是建立一个 双轨记忆系统:
memory/
├── daily/ # 编年体:按日期记录
│ └── 2026/01/30.md # 今天的对话记录
├── topics/ # 纪传体:按主题追踪
│ └── voicepilot/ # VoicePilot 项目的完整历史
└── index.md # 记忆索引
每次对话结束时,我会说"记录一下",Claude 会:
- 提取今天的重要内容,追加到
daily/2026/01/30.md - 识别关联主题,更新对应的 topic 文件
- 刷新索引
下次对话时,Claude 可以通过这些文件"回忆"过去的上下文。
这让 Claude 从"失忆症患者"变成了能持续陪伴的"老朋友"。
配置四:与 Copilot 共享指令
一个实用的小技巧:让 Claude Code 和 GitHub Copilot 共用同一份指令文件。
GitHub Copilot 使用 .github/copilot-instructions.md 作为自定义指令。我们可以创建一个符号链接:
cd .github
ln -sf ../CLAUDE.md copilot-instructions.md
现在:
- Claude Code 读取
CLAUDE.md - Copilot 读取
.github/copilot-instructions.md(实际指向 CLAUDE.md)
一份文档,两个 AI 助手都能用。
完整工作流演示
假设我要写一篇博文记录今天的 VoicePilot 开发经历:
- 触发 Skill:在 Chat 里说"写篇博文记录 VoicePilot"
- Claude 加载 blog-writer Skill,按流程询问细节
- 生成大纲,我确认后开始写作
- 输出完整文件,包含正确的 frontmatter 和文件路径
- 说"记录一下",Claude 把今天的经历存入 Memory
- 下次对话,Claude 知道我在做什么项目
整个过程,Claude 就像一个了解我的私人助理,而不是每次都需要从头介绍的陌生人。
Claude Code vs Copilot:我的选择
两者我都在用,但场景不同:
| 场景 | 选择 | 原因 |
|---|---|---|
| 快速代码补全 | Copilot | Tab 补全更快 |
| 复杂任务/多步骤 | Claude | 推理能力更强 |
| 写文档/博客 | Claude | 自然语言更优 |
| 代码解释 | 都行 | 各有千秋 |
| 项目级重构 | Claude | 上下文理解更好 |
最佳实践:用 Copilot 做 inline 补全,用 Claude 做 Chat 对话。
总结:让 AI 成为"老朋友"
传统的 AI 编程助手是"工具"——你问,它答,然后遗忘一切。
通过 CLAUDE.md、Skills、Memory 这套配置,Claude 变成了"老朋友":
- 知道你的项目(CLAUDE.md)
- 掌握专业技能(Skills)
- 记住过去的对话(Memory)
- 风格保持一致(共享指令)
这不需要复杂的配置,只需要几个 Markdown 文件。
如果你也在用 Claude Code,不妨试试这套方案。相信我,体验会完全不同。
相关资源
下次 AI 忘记你是谁的时候,记得给它建个 Memory 系统。 😄

