日常使用
打开 Claude Code,你会遇到的所有「打字的方式」。三种前缀、三十多个斜杠命令、一个叫权限的弹窗、一把快捷键——本章把这些全讲透。命令卡片可以点开,展开详细用法和示例。
先认识三种输入前缀
在 Claude Code 的输入框里,第一个字符决定了这条输入是什么意思。大部分时候你直接打中文或英文——那是「自然语言请求」,Claude 会自己推断你想干啥。但有三个特殊符号会改变这条输入的性质:
| 前缀 | 含义 | 例子 |
|---|---|---|
@ | 引用文件或目录的内容 | @src/api.ts 帮我加一个错误处理 |
! | 让 Claude 帮你跑一条 shell 命令 | !git status |
/ | 调用一个「斜杠命令」 | /plan、/goal ... |
还有一个位置敏感的前缀:
#(在消息末尾单独用)把某条内容写进 CLAUDE.md,相当于「记一下,下次别再告诉你」。` + Enter(反斜杠 + 回车)在任何终端都能换行,不用记 Shift+Enter 各个终端不同的规则。
这几个前缀你会天天用,我们一个个来。
@ — 把文件「贴」进对话
如果你想让 Claude 看某个具体的文件,最笨的办法是让它自己去找。但如果你已经知道是哪个文件,直接用 @ 指给它看更快、更省 token。
> @src/utils/date.ts 这里面的 formatDate 能不能支持时区参数?
Claude 会先把 src/utils/date.ts 的内容读进上下文,再回答你。打到 @ 的时候会弹出模糊匹配菜单,你可以用方向键选文件;一句话里可以 @ 多个文件,也可以 @ 整个目录(它会递归列出文件清单,但默认不会把所有文件都读进来——目录是「路标」,不是「夹带」)。
还有几个鲜为人知的变体:
@terminal:<name>引用另一个终端窗口的输出(IDE 集成时可用)。@后 Tab 触发更完整的路径补全,包含子目录。- 在 IDE 扩展里,按住 Shift 把文件拖进输入框等价于
@。
什么时候用 @,什么时候让它自己找
你确切知道要哪个文件:用 @。省一次 Glob,也不给它选错文件的机会。
你只有模糊需求(「修一下那个登录 bug」):不要用 @——让 Claude 自己去搜、去找,它擅长这个,还会顺便把相关文件一起扫了。
! — 临时跑一条命令
有时候你只是想让 Claude 看一眼命令输出,不用走完整的对话流程。用 !:
> !git log --oneline -20
它会直接执行这条命令,把输出放进对话里。下次你问「刚才最近那个提交改了啥」,它就能直接看到上下文,不用再自己跑一次 git。这个前缀本质上是你和 Claude 共享一个终端观察视角——你看到的它也看到了。
! 特别适合那些「我自己打会更快、但我希望 Claude 也看到结果」的场景:!npm test、!docker ps、!cat .env.example、!curl -I example.com。
还有一个变体:在 Skill 或 CLAUDE.md 里写 !`git diff HEAD`(反引号包起来),意思是「加载的时候跑这个命令,把结果当成内容的一部分」。动态内容注入——第三章会详细讲。
/ — 斜杠命令:Claude Code 的「功能键」
斜杠命令是内置的小功能。你打一个 /,就会弹出一个自动补全菜单,列出所有可用的命令——包括你自己写的 Skill 和项目里挂的插件提供的命令。
截至 2026 年 5 月,Claude Code 官方的斜杠命令大约 40 个。下面按主题分组。点击任意卡片可以看命令的详细用法、示例、注意事项。
会话保养类
日常维持会话状态用的命令。它们不改代码,只管「让这次聊天更舒服」。
容易搞混的地方
/compact 和 /clear 不一样。/compact 保留任务上下文只压缩历史,/clear 直接把前面全忘了。任务没做完千万别 /clear。
模型与强度
Claude Code 不是一个模型,是一组。不同任务配不同模型能显著省钱、省时间。
搭配建议
注意,你还可以使用你的脑子,不需要消耗 token。
长期记忆与配置
让 Claude「记住」项目规矩的一组命令。第三章会展开讲,这里先认名字。
任务与工作流
控制 Claude「怎么干」的命令。这一组是本章的重头戏——/plan、/goal、/btw 是 Claude Code 工作流的三个支点。
/plan — 先想清楚再动手
新手最容易翻车的场景是:说一句「帮我把登录模块重写一下」,然后看着 Claude 哗啦哗啦改了二十个文件,改完你一看,根本不是你想要的方向,但 diff 已经一大堆了。
/plan 就是为这种情况准备的。进入计划模式后,Claude 变成「只读」:它可以看文件、搜索、分析,但不能改文件、不能跑会产生副作用的命令。它会产出一份方案——列出打算改什么、为什么这么改、有什么影响——然后停下来让你看。
> /plan
> 重写登录模块,用 JWT 替代 session
· 读取 src/auth/session.ts
· 读取 src/middleware/auth.ts
· Grep "req.session" (47 matches in 12 files)
· 读取 tests/auth.test.ts
计划:
1. 新增 src/auth/jwt.ts:封装 sign/verify,用 jose 库
2. 改 src/middleware/auth.ts:从 session 读改成从 Authorization header 读
3. 改 src/routes/login.ts:登录成功后签发 JWT(15 分钟 access + 7 天 refresh)
4. 兼容期:保留 session 逻辑 2 周
5. 更新 12 个调用点
6. 补 8 个新测试
潜在风险:
- 前端需要同步改登录返回处理
- 中间件顺序要调整(csrf → jwt → session)
- 老会话怎么迁移?建议发一个一次性迁移脚本
请确认,或告诉我哪里要调整。
你看完这份计划,可以说「好,去做吧」(按 Shift+Tab 切到 normal 模式),也可以说「第 4 步不用兼容层,直接切」,然后它会更新计划。
计划模式的几个细节
- 可以读,不能写。包括不能跑
npm install这种修改磁盘的命令,但可以跑npm ls这种只读命令。 - 输出的计划会存到
.claude/plans/,文件名由 Claude 起(比如fix-auth-race-snug-otter.md)。可以回头查。 - 退出计划模式:按 Shift+Tab 切回 normal,或者你口头说「好,开干」。
- 常见误用:小任务也开 /plan。改个 typo、改个变量名——这种事情 /plan 反而慢。
经验法则
凡是涉及多个文件、或者你不确定影响范围的任务,都先 /plan。代价是多花一分钟看计划,收益是避免半小时的回滚。
/goal — 设定完成条件 2026.05.11
默认情况下,Claude 每做一轮会停下来看你一眼。这适合「边走边聊」,但有些任务你希望它一口气做完——比如「把所有 TypeScript 报错修掉」、「让测试覆盖率到 80%」。这些都有明确的、机器可验证的完成判据。
/goal 就是告诉它:别停,直到下面这个条件满足。
> /goal 所有 tsc 报错清零,且 npm test 全绿
设完你会看到一个小进度卡片,实时显示:已经跑了几轮、用了多久、花了多少 token、离目标还有多远(估算)。Claude 会反复跑 tsc 和 npm test、修、再跑,直到两个命令都干净为止。
「可验证」是关键
/goal 只接受二元判断的目标——对或错、绿或红、满足或不满足。Claude 自己能跑命令检查答案的那种。
| 好目标(可验证) | 坏目标(会死循环) |
|---|---|
| npm test 全绿 | 测试写得好 |
| eslint 零警告 | 代码质量高 |
| 端口 3000 能返回 HTTP 200 | 性能更好 |
| git grep "TODO" 为空 | 处理所有遗漏 |
| bundle size < 500KB | 让打包更小 |
几个进阶用法
- 组合条件:
/goal tsc 过 且 测试全绿 且 git diff 没有 .env 改动——用「且/或」连接。 - 带预算:
/goal ... --max-turns 20,跑 20 轮没达成就停,防止它死磕。 - 提前停:按 Ctrl+C,当前 goal 会被记为「已中止」,但 Claude 会告诉你它做到哪了、为什么停。
- 覆盖:再打一次
/goal 新条件会直接替换旧 goal,不用先清。
v2.1.140 的一个小坑
v2.1.140(2026-05-12)修复了一个已知 bug:/goal 在某些 hook 配置下会静默卡住。如果你的 Claude Code 版本老于 2.1.140,遇到 goal 不动了,不是它懒,是 hook 里有东西挡住了——升级就好。
三个省心小命令:/btw、/rename、/fork
这三个命令单看都不起眼,合起来是长会话下的生存技能。
/btw — 不进主对话的旁白 新
想象你在指挥 Claude 做一件大事,中间突然想问:「对了,这个项目用 pnpm 还是 npm?」——这个问题和主任务无关,但你懒得等 Claude 忙完。以前只能直接问,结果这个闲聊会被记进对话历史,以后每次 /compact、每次资源传递,都带着这条没用的 QA。
现在有了 /btw。它的消息存在「旁路」里,不会进入主对话历史,就像在会议中举手问了一句话,但会议纪要里不记。
> /btw 这个项目用 pnpm 还是 npm?
Claude: 看 lockfile 是 pnpm-lock.yaml,所以 pnpm。
> (继续主任务,刚才的问答不占主上下文)
/rename — 给会话贴标签 新
Claude Code 支持同时开多个会话(一个改前端,一个改后端,一个跑后台调研)。默认每个会话用一串随机 ID 命名,过两天你根本分不清谁是谁。/rename 给当前会话起个人话名字,之后在 /tasks、claude resume、agent 视图里都以这个名字出现。
> /rename 重构登录模块
/fork — 走两条路
/fork 复制一份当前上下文到新 session,两边各走各的。典型用例:你走到一半想试两种方案——fork 出一个新会话,在它里面试方案 B;原会话继续方案 A。谁跑得好留谁。
审查三件套:/review、/security-review、/simplify
写完代码要 review。Claude Code 内置了三种视角的审查器,点开卡片看每个的具体用法:
什么时候用哪个
/review。三十秒审完当前 diff,抓住明显的 bug 和漏测。/security-review 必跑。成本几乎零,一旦找到一个 SQL 注入就值回票价。/simplify。它会指出没必要的防御性代码、可以抽出的重复、被删掉也不影响的分支。/ultrareview。多个 agent 并行从不同角度审,比本地 /review 慢几分钟但深得多。插播:权限那一幕
你用着用着会遇到这一幕——Claude 想跑一条命令,终端突然停下来,弹出一个框:
Claude wants to run: rm -rf node_modules
[y] Yes, once
[a] Yes, and don't ask again for this pattern (Bash(rm -rf *))
[n] No, and tell Claude what to do instead
[e] Edit the command before running
这是 Claude Code 的权限系统。每次模型想调用「有副作用」的工具——写文件、跑命令、上网请求——默认都会先问你一下。读文件、搜索这类只读操作不会问。
四个选项
Bash(npm run test *))——看一眼再按,别闭眼按。四种权限模式
按 Shift+Tab 在几种模式之间循环:
| 模式 | 行为 | 适合 |
|---|---|---|
| default | 有副作用的工具每次问 | 日常 |
| plan | 完全只读,没副作用 | 不确定、先看方案 |
| auto (acceptEdits) | 文件编辑自动通过,命令还是问 | 信任编辑、警惕命令 |
| bypass | 什么都不问(危险) | 只在一次性容器/沙盒里用 |
配置:在 .claude/settings.json 里定白名单
{
"permissions": {
"allow": [
"Bash(npm test *)",
"Bash(npm run *)",
"Bash(git status)",
"Bash(git diff *)",
"Bash(git log *)",
"Bash(ls *)",
"Read",
"mcp__github__*"
],
"deny": [
"Bash(rm -rf *)",
"Bash(sudo *)",
"Bash(curl * | sh)",
"Write(.env)",
"Write(.env.local)",
"mcp__slack__send_message"
]
}
}
语法要点:
Bash(pattern)用 shell glob,*匹配任意。Read/Write/Edit单独给,不带括号表示「所有路径」;带括号限定路径模式。mcp__<server>__<tool>格式匹配 MCP 工具,*可覆盖所有。deny比allow优先级高——同一条命令既在 allow 又在 deny,deny 胜。
一键配好白名单
懒得手写?打 /less-permission-prompts,Claude 会扫你的历史记录,把反复通过的只读命令聚合成建议白名单,一步写进 settings.json。本来要按二十次 y,改完再也不弹。
不要无脑开 --dangerously-skip-permissions
有这么一个 CLI 旗标可以关掉所有权限提示。适合跑在一次性 Docker 容器或 CI 沙盒里。直接在你的主力电脑上用它,等于把方向盘交给一个没见过这条路的司机——而且司机以为自己见过。一旦它决定 rm -rf /,你没有第二次机会。
快捷键:那些能让你快十倍的组合
Claude Code 在终端里跑,键盘就是一切。以下这些值得记到肌肉记忆里:
基本操作
| 按键 | 作用 |
|---|---|
| Enter | 发送消息 |
| Shift+Enter | 换行(部分终端支持) |
| \ + Enter | 换行(所有终端通用) |
| Esc | 中断当前生成 |
| Esc × 2 | 打开 rewind 菜单,选择回到某个检查点 |
| Ctrl+C | 按一下:取消当前输入。按两下:退出 |
| Ctrl+D | 退出 Claude Code |
| Ctrl+L | 强制刷新终端显示 |
| Ctrl+R | 反向搜索历史命令(Ctrl+S 切换到只搜当前项目) |
| ? | 弹出快捷键小抄 |
模式切换
| 按键 | 作用 |
|---|---|
| Shift+Tab | 循环切换权限模式(default → auto → plan) |
| Tab | 打开/关闭扩展思考 |
| Alt+P / Opt+P | 切换模型(Sonnet / Opus / Haiku) |
| Alt+T / Opt+T | 切换 thinking |
| Ctrl+T | 打开/关闭任务列表面板 |
| Ctrl+O | 切换详细输出 |
| Ctrl+G | 在外部编辑器里写本次输入 |
输入编辑
| 按键 | 作用 |
|---|---|
| Ctrl+U | 清空当前输入 |
| Ctrl+Y | 恢复刚被 Ctrl+U 清掉的内容 |
| Ctrl+K | 删到行尾 |
| Ctrl+S | 把当前输入暂存(之后 Ctrl+R 找回) |
| Alt+B / Alt+F | 按词向前 / 向后跳 |
| Ctrl+A / Ctrl+E | 跳行首 / 行尾 |
后台 / agent 控制
| 按键 | 作用 |
|---|---|
| Ctrl+F | 按两下:停掉所有后台 agent |
| Shift+↓ | 在 Agent Teams 里切换队友 |
| Shift+Drag | 拖文件进输入框 = @文件 |
| Ctrl+V | 粘贴剪贴板里的图片(支持截图) |
自己改键位
想把某个快捷键换成别的?/keybindings 打开 ~/.claude/keybindings.json,按 VS Code 式的语法改。改完立刻生效,不用重启。
CLI 模式:把 Claude Code 当命令行工具
Claude Code 不只是交互式界面。它也是一个 CLI——可以被脚本、CI、Makefile 调用。
几种启动方式
# 交互式
$ claude
$ claude "帮我看看 main.py" # 带初始 prompt
# 非交互(打印一次就退出)
$ claude -p "给这个项目写一句话总结"
$ cat README.md | claude -p "总结成三个 bullet"
# 续会话
$ claude -c # 最近一次
$ claude -r "重构登录模块" # 按名字
$ claude --from-pr 42 # 按 GitHub PR 号
# 隔离 / 后台
$ claude -w feature-jwt # 新建 git worktree 隔离跑
$ claude -w feature-jwt --tmux # + tmux 分窗口
常用 flag(节选)
| Flag | 作用 |
|---|---|
--model opus|sonnet|haiku | 指定模型 |
--effort high | 指定思考强度 |
--max-turns 10 | 非交互模式下最多走几轮 |
--max-budget-usd 2.00 | 花费超过就停 |
--output-format json | 输出成 JSON 方便脚本解析 |
--json-schema '...' | 用 schema 校验输出 |
--allowedTools "Read,Grep,Glob" | 限定工具(常用于 CI) |
--permission-mode plan | 启动时就进 plan 模式 |
--agent my-researcher | 指定用某个 agent |
--bare | 跳过 hooks/plugins/auto-memory,干净启动 |
--dangerously-skip-permissions | 禁用权限弹窗(只在沙盒用) |
一个 CI 里的实战例子
给 PR 自动生成变更说明,写成 GitHub Action 的一步:
# .github/workflows/pr-summary.yml
- name: Summarize PR with Claude
run: |
gh pr diff ${{ github.event.pull_request.number }} | \
claude -p "把这份 diff 总结成 3 条 bullet,面向评审者" \
--output-format text \
--max-turns 1 \
--max-budget-usd 0.50 > summary.txt
gh pr comment ${{ github.event.pull_request.number }} --body-file summary.txt
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
这里用了 --max-turns 1 和预算上限——CI 里最怕的是「无限循环吃钱」。加上这两个就是理性的。
把这些串起来:一条真实的工作流
下面是用 Claude Code 做一个功能的典型流程,把本章讲到的东西都串起来:
# 1. 进项目,启动
$ cd my-project
$ claude
# 2. 给这次会话起个名字,方便回来
> /rename 加一个文件上传接口
# 3. 用计划模式先让它想清楚
> /plan
> 加一个 POST /api/upload,接受图片,存到 S3,返回 URL
# Claude 列出 8 步计划。我看完 OK,Shift+Tab 切到 normal
# 4. 干活中途,想起个小问题 —— /btw
> /btw 这个项目的 S3 bucket 名字在哪个环境变量里?
# Claude 扫了眼 .env.example 直接答了,不占主上下文
# 5. 让它一口气做完 —— /goal
> /goal 新接口有完整测试,npm test 全绿,tsc 无报错
# 6. 中间如果想要停,Ctrl+C 随时
# 7. 完事了自检一下
> /review
# 8. 安全视角再扫一遍(上传接口一定要)
> /security-review
# 9. 上下文差不多了,压一下为下一任务腾空间
> /compact
# 10. 提交
> 根据 git diff 写个 commit message,别合并到 main
十步里有六个斜杠命令、两次自然语言请求、几次快捷键。这是 Claude Code 的日常节奏——你和它之间的切换越丝滑,效率越高。
练习
选一个你自己的小项目,按上面的十步跑一遍。不用做真实功能——随便一个「加一个 /ping 路由」也行。重点是让三个关键命令(/plan、/goal、/review)从陌生变成反射。