【AI Coding】Claude Code 入门(三):VSCode 插件模式 — 编辑器内的 AI 编程搭档

本篇讲解如何在 VSCode 中使用 Claude Code 插件,包括安装配置、核心功能和高效工作流。

一、为什么要用 VSCode 插件模式?

CLI 模式虽然强大,但在编辑器内直接使用有更直观的体验:

对比维度 CLI 模式 VSCode 插件模式
文件上下文 需要手动指定 自动感知当前打开的文件
代码选中 无法选中 选中代码直接提问
错误诊断 需要描述 直接读取编辑器错误
Diff 预览 终端输出 可视化 diff 面板
终端集成 独立窗口 内置终端面板
多文件操作 依赖描述 可视化展示所有改动

一句话总结:VSCode 插件模式 = CLI 的全部能力 + 编辑器原生体验。

二、安装 Claude Code VSCode 插件

2.1 安装步骤

方法一:VSCode 扩展商店搜索

  1. 打开 VSCode
  2. Ctrl+Shift+X 打开扩展面板
  3. 搜索 Claude Code
  4. 点击安装(发布者为 Anthropic)

方法二:命令行安装

code --install-extension anthropic.claude-code

方法三:从 VSIX 安装

# 如果有 .vsix 文件
code --install-extension claude-code-x.x.x.vsix

2.2 安装后界面

安装完成后,VSCode 会发生以下变化:

┌─────────────────────────────────────────────────────┐
│  VSCode 顶部状态栏                                    │
│  [...文件...编辑...查看...]  [Claude 图标] ← 新增    │
├────────────┬──────────────────────┬──────────────────┤
│            │                      │                  │
│  资源管理器  │    编辑器区域        │  Claude 面板     │
│            │                      │  ← 侧边栏新增    │
│            │                      │                  │
├────────────┴──────────────────────┴──────────────────┤
│  终端面板(Claude 可在此输出)                        │
└─────────────────────────────────────────────────────┘

2.3 首次配置

插件使用与 CLI 相同的配置文件~/.claude/settings.json),所以如果你已经在第一篇教程中配置好了 API,插件可以直接使用。

验证方式:

  1. 点击侧边栏的 Claude 图标
  2. 输入 你是什么模型?
  3. 如果收到正常回复,配置成功

三、核心功能详解

3.1 对话面板(Chat Panel)

侧边栏的 Claude 面板是主要交互区域:

┌─────────────────────────┐
│  Claude Code             │
│  ┌─────────────────────┐│
│  │ 🤖 Claude           ││
│  │ 你好!我可以帮你写代 ││
│  │ 码、修 bug、做重构。 ││
│  │ 有什么需要帮忙的?   ││
│  └─────────────────────┘│
│                          │
│  ┌─────────────────────┐│
│  │ 👤 You              ││
│  │ 帮我创建一个 React  ││
│  │ 组件...             ││
│  └─────────────────────┘│
│                          │
│  ┌─────────────────────┐│
│  │ 输入你的问题...  ➤  ││
│  └─────────────────────┘│
│  [模型: Opus] [⚡medium] │
└─────────────────────────┘

3.2 代码上下文感知

VSCode 模式下 Claude 自动感知编辑器上下文:

打开的文件

  • Claude 知道你当前打开了哪些文件
  • 不需要手动告诉它 “看一下 XXX 文件”

选中的代码

  • 选中一段代码后在 Claude 面板提问
  • Claude 会基于选中的代码回答

编辑器错误

  • 红色波浪线标记的错误,Claude 可以直接读取
  • 问 “这个错误怎么修” 即可

终端输出

  • Claude 可以读取 VSCode 终端的输出
  • 编译错误、运行日志都能直接分析

3.3 Inline Chat(行内对话)

Ctrl+I 打开行内对话,在代码编辑区域直接与 Claude 交互:

# 在代码中选中一段,按 Ctrl+I
┌──────────────────────────────────────────┐
│  输入指令...                    [Send]   │
│                                          │
│  常用指令示例:                           │
│  - "给这个方法添加错误处理"               │
│  - "优化这段代码的性能"                   │
│  - "将这段代码转换为 TypeScript"          │
│  - "添加 JSDoc 注释"                     │
└──────────────────────────────────────────┘

Inline Chat 的特点

  • 精准定位:Claude 知道你要改的是哪段代码
  • 即时预览:改动直接在编辑器中显示
  • 一键接受/拒绝:改动以 diff 形式展示,按 Tab 接受,Esc 拒绝

3.4 Diff 预览与接受

Claude 修改代码时会生成可视化 diff:

  function calculateTotal(items) {
-   let total = 0;
-   for (let i = 0; i < items.length; i++) {
-     total += items[i].price;
-   }
-   return total;
+   return items.reduce((sum, item) => sum + item.price, 0);
  }

  [✓ Accept] [✗ Reject] [✎ Edit]

操作方式

操作 快捷键 说明
接受改动 Tab 或点击 ✓ 应用修改到文件
拒绝改动 Esc 或点击 ✗ 丢弃修改
部分接受 手动选择 在 diff 中选择性保留

3.5 多文件改动

当 Claude 需要修改多个文件时,会展示文件列表:

Claude wants to modify 3 files:

📄 src/service/UserService.java      +15 -3
📄 src/controller/UserController.java +8 -2
📄 src/test/UserServiceTest.java     +42 -0

[Accept All] [Review Each] [Reject All]

四、高效工作流

4.1 开发新功能

Step 1: 在 Claude 面板描述需求
> 创建一个用户注册功能,包含邮箱验证和密码强度校验

Step 2: Claude 生成代码
- 自动创建 Service、Controller、DTO 等文件
- 展示每个文件的 diff

Step 3: 逐个审查并接受改动
- 点击 Review Each 逐个文件确认
- 或 Accept All 一键接受

Step 4: 让 Claude 生成测试
> 为刚才创建的注册功能生成单元测试

Step 5: 让 Claude 运行测试
> 运行测试,如果有失败帮我修复

4.2 Bug 修复流程

Step 1: 复制错误信息(或让 Claude 读取终端)
> 看一下控制台的报错,帮我修复

Step 2: Claude 分析错误原因
- 自动定位相关文件
- 解释错误原因
- 提出修复方案

Step 3: 接受修复并验证
> 修复好了吗?帮我运行一下确认

4.3 代码重构流程

> 这个 Controller 太臃肿了,帮我按职责拆分成多个文件

Claude 会:
1. 分析现有 Controller 的职责
2. 规划拆分方案
3. 创建新的 Controller 文件
4. 更新路由映射
5. 确保所有引用都更新

4.4 Git 工作流集成

# 在 Claude 面板中:
> 帮我提交当前改动,生成有意义的 commit message

> 创建一个 PR,描述清楚做了什么改动

> 帮我 review 一下 feature-login 分支和 main 的差异

五、快捷键速查

5.1 全局快捷键

快捷键 功能 说明
Ctrl+Shift+P → “Claude” 命令面板 所有 Claude 命令
Ctrl+L 聚焦 Claude 面板 快速切换到对话
Ctrl+I Inline Chat 在编辑器中行内对话
Ctrl+Shift+I 新建对话 清空上下文重新开始

5.2 Claude 面板快捷键

快捷键 功能
Enter 发送消息
Shift+Enter 换行
Ctrl+L 清空对话
@ 引用文件/符号

5.3 Diff 操作快捷键

快捷键 功能
Tab 接受当前改动
Esc 拒绝当前改动
Ctrl+Z 撤销

六、@ 引用系统

Claude Code VSCode 插件支持丰富的 @ 引用,精确控制上下文:

# 在输入框中使用 @ 引用

@file src/main.ts              # 引用特定文件
@folder src/components         # 引用整个目录
@symbol UserService            # 引用类/函数/变量
@selection                     # 引用当前选中的代码
@terminal                      # 引用终端输出
@diagnostics                   # 引用编辑器中的错误/警告
@git                           # 引用 Git 状态

实用示例

# 精确引用文件
> 参考 @file UserService.java 的风格,帮我创建一个 OrderService

# 引用错误
> @diagnostics 这些报错是什么原因?怎么修?

# 引用终端
> @terminal 这个编译错误帮我修一下

# 引用 Git 改动
> @git 帮我 review 这些未提交的改动

七、Settings 配置优化

7.1 VSCode 专属设置

在 VSCode 的 settings.json 中(非 Claude 配置):

{
  // Claude Code 面板位置
  "claude.panelLocation": "sidebar",

  // 自动附加打开的文件作为上下文
  "claude.autoAttachOpenFiles": true,

  // Diff 显示方式
  "claude.diffViewType": "inline",

  // 自动保存 Claude 修改的文件
  "claude.autoSaveFiles": true
}

7.2 模型和努力级别切换

在 VSCode 面板底部状态栏:

┌─────────────────────────────┐
│  [Opus ▼] [Medium Effort ▼] │
└─────────────────────────────┘

# 点击可快速切换:
# - 模型:Opus / Sonnet / Haiku
# - 努力级别:Low / Medium / High / Max

八、CLAUDE.md:项目级配置

8.1 什么是 CLAUDE.md?

CLAUDE.md 是放在项目根目录的配置文件,Claude 每次启动都会读取它。相当于给 Claude 的"项目说明书"。

8.2 创建 CLAUDE.md

# 在项目根目录创建
# 或在 Claude 中输入 /init 自动生成

# 方式一:手动创建
touch CLAUDE.md

# 方式二:让 Claude 帮你生成
claude
> /init

8.3 CLAUDE.md 示例

# 项目说明

本项目是一个电商后台管理系统,使用 Java 17 + Spring Boot 3.2。

## 技术栈
- 后端:Spring Boot 3.2, MyBatis-Plus, MySQL 8.0
- 前端:Vue 3, Element Plus, Vite
- 部署:Docker, Nginx

## 代码规范
- Java 代码遵循阿里巴巴 Java 开发规范
- 方法必须有 Javadoc 注释
- 所有 Service 方法需要 @Transactional
- Controller 只做参数校验和转发,业务逻辑放 Service

## 常用命令
- 启动:`mvn spring-boot:run`
- 测试:`mvn test`
- 打包:`mvn clean package -DskipTests`

## 项目结构
- src/main/java/com/example/controller — 控制器层
- src/main/java/com/example/service — 服务层
- src/main/java/com/example/mapper — 数据访问层
- src/main/java/com/example/entity — 实体类

8.4 CLAUDE.md 的作用

有了 CLAUDE.md,Claude 会:

  • 自动遵循你定义的代码规范
  • 使用你指定的技术栈和框架
  • 理解项目结构和业务逻辑
  • 生成的代码风格与项目一致

九、插件 vs CLI:如何选择?

场景 推荐模式
快速问答/生成代码片段 CLI (claude -p)
大型项目开发 VSCode 插件
CI/CD 集成 CLI (--print 模式)
代码审查 VSCode 插件(可视化 diff)
文件批量操作 CLI 或插件均可
需要看到代码高亮和 diff VSCode 插件
远程服务器/SSH CLI
多文件重构 VSCode 插件

最佳实践:日常开发用 VSCode 插件,脚本和自动化用 CLI。

十、总结

安装插件 → 配置 API(复用 CLI 配置)
    ↓
侧边栏对话:Ctrl+L 聚焦,@ 引用精确上下文
    ↓
行内对话:Ctrl+I,直接在代码中提问
    ↓
Diff 预览:Tab 接受,Esc 拒绝
    ↓
CLAUDE.md:项目级配置,让 Claude 理解你的规范

Claude Code 的 VSCode 插件模式让 AI 编程真正融入了日常开发流程。它不是独立的工具,而是你编辑器里的"同事" — 随时可以问、随时可以改、随时可以审查。


系列目录

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐