一、Claude Code 三种模式的本质区别
Claude Code 核心有 3 种工作模式,决定了它能不能直接修改你的代码文件。快捷键都是
Shift + Tab 循环切换。表格
| 模式 | 状态提示 | 核心行为 | 适用场景 |
|---|---|---|---|
| 模式一:默认交互模式 | ? for shortcuts |
要修改文件前,必须先问你,你确认后才改 | 日常开发、改核心代码、不确定是否修改的场景 |
| 模式二:编辑模式(accept edits on) | accept edits on |
自动修改文件,不需要你确认,直接落地 | 写简单业务、CRUD、已知安全的代码 |
| 模式三:计划模式(plan mode on) | plan mode on |
只讨论、不修改任何文件,只输出方案 / 代码思路,不碰本地文件 | 架构设计、代码评审、重构方案讨论、敏感代码分析 |
二、三种模式详细拆解 & 作用
1. 模式一:默认交互模式(最安全)
- 特点:
- 当 Claude 需要修改文件时,会先给你列出「修改预览」,并提示你输入
/apply才会真正写入文件。 - 你可以选择
/apply同意修改,也可以/reject拒绝。
- 当 Claude 需要修改文件时,会先给你列出「修改预览」,并提示你输入
- 作用:
- 避免误操作,是最安全的默认模式。
- 使用场景:
- 修改核心业务代码、数据库操作、批量删除逻辑等关键功能;
- 你对 AI 生成的代码没把握,想先看清楚再决定是否落地。
2. 模式二:编辑模式(accept edits on,自动改)
- 特点:
- Claude 生成代码后,会直接写入本地文件,不需要你手动
/apply。
- Claude 生成代码后,会直接写入本地文件,不需要你手动
- 作用:
- 提升开发效率,减少你反复输入
/apply的步骤。
- 提升开发效率,减少你反复输入
- 使用场景:
- 写简单的 CRUD、单元测试、工具类、注释补充;
- 代码逻辑简单、风险低,你信任当前会话的输出。
- 风险:
- 如果 Claude 生成了错误代码,会直接覆盖你的本地文件,需要手动恢复。
3. 模式三:计划模式(plan mode on,只讨论不修改)
- 特点:
- Claude 只会输出文字方案、代码示例、架构分析,不会执行任何写文件操作,也不会执行命令。
- 作用:
- 完全保护你的本地代码,只做 “头脑风暴” 和方案设计。
- 使用场景:
- 架构设计、项目方案讨论;
- 代码评审、问题分析(比如 SQL 优化思路、批量删除逻辑方案);
- 分析敏感代码、生产环境脚本,不想让 AI 动到文件;
- 学习和理解现有代码,不做任何改动。
三、Mac 上怎么切换 & 使用
方式 1:快捷键循环切换(最方便)
- 进入 Claude Code 交互模式:
cd 你的项目目录 claude - 直接按
Shift + Tab,终端顶部的提示会循环变化:- 第一次按:
? for shortcuts(默认交互模式) - 第二次按:
accept edits on(编辑模式) - 第三次按:
plan mode on(计划模式) - 再按就回到第一个模式。
- 第一次按:
方式 2:在交互里手动输入命令切换
在
> 提示符下输入:# 开启编辑模式(自动修改文件)
> /accept-edits on# 关闭编辑模式,回到默认
> /accept-edits off# 开启计划模式(只讨论不修改)
> /plan on# 关闭计划模式
> /plan off
四、开发中怎么用这三种模式?(结合你的财务 NC 项目)
给你一个推荐的使用流程:
-
架构 / 方案讨论:用计划模式
- 开启
plan mode on - 提问:
帮我分析一下 nc_source_data_0000 分批删除的优化方案 - Claude 只会输出方案,不会动你的代码。
- 开启
-
写新业务代码:先用计划模式确认,再开编辑模式
- 先用
plan mode on让 Claude 输出完整代码方案; - 确认没问题后,按
Shift+Tab切换到accept edits on; - 让 Claude 自动写入代码,效率最高。
- 先用
-
改核心 / 敏感代码:一直用默认模式
- 比如修改
FetchDataServiceImpl的删除逻辑、数据库操作代码; - 保持
? for shortcuts模式,让 Claude 先给预览,你确认/apply后再写入,避免误删数据逻辑。
- 比如修改
五、补充说明
- 模式切换只对当前会话生效,重启 Claude 会恢复到默认的「交互模式」;
- 建议你养成习惯:敏感操作、生产相关代码,一律用默认模式或计划模式,不要用自动编辑模式;
- 计划模式下,你依然可以用
/add加载文件,只是 Claude 不会修改它们,只会做分析和输出。
