前言 #
之前写了一篇 Claude Code 的上手指南,覆盖了安装配置和基础功能。后来深入使用的过程中,发现还有不少进阶玩法我之前没涉及到,比如 NoFlicker 模式、输入技巧、会话管理、缓存策略这些。这些功能单独看都是小细节,但组合起来对日常使用体验的提升非常大。这篇文章把这些内容整理出来,算是上一篇的补充1。
NoFlicker 模式(无闪烁模式) #
传统模式下,Claude Code 每次对话都会把整个历史完整拉出刷新,超过终端刷新速度导致闪烁。NoFlicker 模式从根本上解决了这个问题。
启用方式:在 settings.json 中添加 "noFlicker": true,或使用命令 /tui fullscreen。恢复传统模式用 /tui default。
三大改进:
- 内置虚拟滚动:不再依赖终端滚动,类似 vim 的屏幕滚动方式,支持 Page Up/Page Down 和鼠标滚轮,滚动平滑
- Focus 精简显示:每轮对话只显示问题加最终结果摘要(如「编辑了 5 个文件,增加 54 行,删除 25 行」),中间过程可展开查看,不关心就折叠
- 上下文快速定位:直接看到每轮对话的问题和回复的对应关系,不用滚很长距离
Ctrl+O 三级切换(传统模式只有一级):
- 第 0 级:Focus 模式,只显示摘要
- 第 1 次
Ctrl+O:显示每步操作概要(bash 仍精简) - 第 2 次
Ctrl+O:完全展开,等同传统模式
其他交互:
- 底部有「跳回底部」按钮
- 支持鼠标点击穿透
Ctrl+O后按V可用 nvim 打开完整对话记录,方便复制和搜索(vim 用户狂喜)Ctrl+O后按[切换到终端原生滚动模式
输入技巧 #
Ctrl+S:输入暂存 #
正在输入长提示词时,突然想先执行别的操作(切模型、运行命令、调用技能),按 Ctrl+S 把当前输入推到栈上,执行完其他操作后自动恢复。
Ctrl+G:外部编辑器编辑提示词 #
长提示词用 Ctrl+G 打开外部编辑器(需设置 EDITOR=nvim 或 EDITOR=code),多行编辑更省力,保存退出后自动填充到输入框。
Ctrl+V:粘贴图片 #
直接 Ctrl+V 粘贴截图到对话,可以对着截图提问、要求模仿 UI 设计等。Claude 会根据图片理解你的需求。
!:就地运行 bash 命令 #
输入 ! ls 等命令可直接在 Claude Code 内执行,输出自动进入上下文。好处:
- 运行后直接提问,Claude 能看到命令输出
- 报错后直接说 “fix”,Claude 看到错误就地修复
- 不用手动粘贴错误信息
btw:旁路提问(不进上下文) #
在 Claude 工作过程中,输入 btw <问题> 进行临时提问:
- 不进入主上下文,不浪费 token
- 不打断当前正在执行的任务
- 一次性问答,用完自动消失
- 适合不确定是否相关的问题
会话管理 #
clear:清空上下文 #
/clear 清空当前上下文,开始全新对话。好处:
- 省 token
- 模型更专注于当前任务
- 避免旧指令和新指令冲突导致降智
resume:恢复会话 #
误操作 clear 后可用 /resume 恢复之前的对话。
rename:重命名会话 #
/rename <名称>:手动命名/rename(不带参数):让 Claude 根据上下文自动生成名称- 多开会话时方便识别每个会话在做什么
color:会话着色 #
/color <颜色> 给会话设置主题色,视觉区分不同会话,快速联想。
recap:自动回顾 #
- 闲置一段时间后自动生成灰色 recap 摘要
- 切换回来一眼就知道之前在做什么
- 也可手动输入
/recap触发 - 可在 config 中关闭此功能(觉得浪费 token 的话)
copy:复制回复 #
/copy:复制最近一条回复/copy <数字>:复制指定编号的回复- NoFlicker 模式下也支持鼠标选中文本直接复制(使用 OSC52 终端功能)
Rewind(回滚) #
回滚对话 + 代码 #
不仅回滚对话,同时撤销 Claude 的代码修改。
仅回滚对话 #
只撤销对话,不修改代码(但已删除的文件无法恢复)。
触发方式 #
- 命令行输入
/undo或rewind - 按两下
Esc也可触发
非交互模式(命令行直接调用) #
claude "提示词"
#
直接在终端执行,进入 TUI 后自动运行。
claude -p "提示词"(纯管道模式)
#
不启动 TUI 界面,直接输出结果到终端。用途:
- 搭配
claude -p --model haiku "make a commit"用便宜模型快速生成 commit - 结合脚本自动化工作流
- 适合只关心最终结果不关心过程的场景
自然语言转命令 #
直接用自然语言描述想做的事(如 “删除 wiki 相关的 mcp”),Claude 自动转换为正确命令执行。
Worktree(工作树隔离) #
概念 #
在独立目录创建完整代码副本,修改不影响主工作区。多个 Claude 会话可同时在不同 worktree 中并行工作,互不干扰。
使用方式 #
claude -w <名称>或对话中说 “switch to worktree”- 在 worktree 中开发功能,完成后说 “merge back to main”
- 每个 worktree 自动创建独立分支
典型工作流 #
- 说 “switch to worktree, 开发 XXX 功能”
- Claude 自动创建 worktree 和命名分支
- 切换到 Plan 模式 →
interview me(让 Claude 先提问再规划) - 接受计划 → 执行
- 完成后说 “merge back to main”
Plan 模式的 interview me #
在 Plan 模式中输入 interview me 让 Claude 先提问关键需求,避免:
- 方案和预期不符导致返工
- 浪费时间重新对话纠正
- 提前确认好再开始实施
定时任务与循环 #
Loop:循环任务 #
/loop 1m report cpu usage- 每隔指定时间重复执行提示词
- 使用 CronCreate 在 Claude 内部创建定时器
- 退出会话时 loop 停止
- 建议配合 tmux 使用,保持会话不关闭
Schedule:一次性定时任务 #
用自然语言描述即可:
- “16 点帮我运行 XXX”
- Claude 自动设置定时执行
- 到时间自动执行,终端需保持开启
- 可用 CronDelete 手动取消
Skills(技能系统) #
技能按需加载 #
- 技能只在需要时加载,不常驻上下文(一个 Skill 约 10 token)
- 对比 MCP:一个 MCP 动辄几千 token 占用上下文
- 技能通过 description 中的关键词/模式匹配触发
从对话创建技能 #
把当前对话中的常用任务转化为可复用的 Skill:
- 检测对话中发生了什么有意义的操作
- 引导你设置技能名称、目标、触发条件、参数
- 保存后可随时调用
技能的 description 写法 #
description 写在 Skill 工具的描述里,采用 Anthropic 官方推荐格式:
描述技能功能。
Use this skill when: [触发条件/关键词模式]- 触发强度取决于 description 中的模式匹配强度
- 越具体的模式越容易被 Claude 主动调用
技能内容按需加载 #
- Skill 主文件只包含基本信息
- 详细文档放在子目录的 reference 文件中
- Claude 只在需要时才读取对应 reference
- 支持引用网页 URL 获取最新文档
Hooks(钩子) #
概念 #
在 Claude 执行特定操作(如调用 bash、编辑文件)前/后自动触发的脚本,写在 settings.json 中。
典型用途 #
a) 命令拦截替换
- 检测到
pip→ 提示改用uv - 检测到
npm→ 提示改用pnpm - 可设置 fallback(特殊情况下允许跳过)
b) 编辑后自动复查
- 每次编辑/写入文件后自动重新读取检查
- 检查上下 30 行是否正确(如 JSON 少逗号等)
- 检查无误则静默,有问题则自动修复
- 比写规则更可靠,不增加编辑时的认知负担
c) 辅助技能触发
- 检测到后台任务启动 → 注入提示让 Claude 联想 cache-keepalive 技能
- 弥补大模型注意力"中间弱"的问题
为什么用 Hook 而不是规则 #
- 低端模型(如 GLM)容易忘记文字规则
- Hook 是程序化强制执行,100% 触发
- 规则太多会降低推理质量
- Hook 不干扰编辑时的注意力,只在操作完成后触发
Review 技能(代码审查) #
代码审查要点 #
- 检查修改文件与上下文风格是否一致(如换行规范)
- 检查 AI 常见"拉屎模式"(smell detection)
AI 常见 Smell 模式 #
- 防御性编程过度:
except: pass吞掉所有异常不报告 - 不必要的安全网:没出错也加默认值、类型转换
- 不修 root cause:上游有问题,中间加过滤器而不是修源头
- 死代码残留:改了功能但旧代码不删
- 硬编码步骤编号:1. 2. 3. 改成 1. 2a. 2b. 很恶心
- 复制粘贴改一点点:应该抽象成函数
适合用子代理(SubAgent) #
审查需要读大量文件但结论很少 → 用子代理隔离上下文,只返回关键结论给主代理。
模型与配置建议 #
推荐使用 Opus #
- Opus 1M 上下文和 200K 同价(改价后)
- 记忆召回能力极强,很早的对话都能想起
- Sonnet 200K 容易遗忘之前的设定
Effort 设置 #
- 必须设为 high 或 max
auto模式对简单问题会跳过思考,质量大幅下降- 简单操作也可能涉及危险命令(如删除),跳过思考不可接受
关闭动态思考 #
- Claude 4.0+ 新增动态思考:简单问题可能不思考直接回答
- 建议关闭,让每次都用全量思考
- 虽然慢一点贵一点,但 Max 套餐根本用不完
Bypass Permission #
- 全程 bypass 可以减少手动确认
- 建议每个命令看一眼内容再执行
- 修改自身配置时仍会询问
上下文管理最佳实践 #
核心原则 #
不要把单个上下文当宠物养 —— Claude 的上下文是有限记忆窗口。
关键建议 #
- 话题切换时
clear新开上下文 - 无关上下文(如早上讨论吃什么)对当前任务(如讨论 Skill)毫无帮助
- 上下文太长 → 注意力分散 → 智商降低
- 大多数在 200K 时就已经开始降智,1M 只是延迟了压缩
重要结论沉淀为文件 #
- 与 Claude 讨论出的规则、规范写到
CLAUDE.md或 docs 文件夹 - 上下文丢失后对话记录全无
- 文件可以按需加载,上下文里的不行
Compact(压缩上下文) #
/compact把之前上下文简化描述为第一条消息- 接着在上面继续工作
- 规则太多记不住 → compact 一次重置
注意力分布规律 #
- 最新上下文:最熟悉(注意力最高)
- 最前上下文:次熟悉
- 中间上下文:最容易遗忘(注意力最弱)
缓存省钱策略(Cache Keepalive) #
Anthropic 缓存机制 #
| 状态 | 价格倍率 |
|---|---|
| 首次请求(写缓存) | 1.25x |
| 缓存命中(读缓存) | 0.1x |
| 缓存失效(超过 TTL) | 重新 1.25x |
| 1 小时缓存选项 | 2.0x |
五分钟策略 #
- 默认缓存 TTL = 5 分钟
- 每 5 分钟刷一次,保持缓存活跃
- 刷 10 次(50 分钟)= 1.0x,远比 50 分钟后缓存失效重新 1.25x 划算
- 通过 Hook + Skill 组合自动触发 cache keepalive
其他实用功能 #
claude install <包名>
#
自然语言安装软件,Claude 自动处理依赖和配置。
自然语言配置系统 #
- 不用记复杂命令,直接用自然语言描述需求
- Claude 自动转换为正确命令(如 systemd 配置、clash 守护进程等)
快捷键速查表 #
| 快捷键 | 功能 |
|---|---|
Ctrl+O |
切换显示详细程度(NoFlicker 三级) |
Ctrl+S |
暂存当前输入,执行其他操作后恢复 |
Ctrl+G |
用外部编辑器编辑提示词 |
Ctrl+V |
粘贴图片到对话 |
Esc Esc |
Rewind(回滚) |
Ctrl+O → V |
用 vim 打开完整对话记录 |
Ctrl+O → [ |
切换终端原生滚动 |
! <命令> |
就地运行 bash 命令 |
btw <问题> |
旁路提问(不进上下文) |
命令速查表 #
| 命令 | 功能 |
|---|---|
/clear |
清空上下文 |
/resume |
恢复之前的会话 |
/compact |
压缩上下文 |
/undo 或 rewind |
回滚 |
/rename <名> |
重命名会话 |
/rename |
自动生成会话名 |
/color <色> |
设置会话主题色 |
/copy [N] |
复制最近/指定回复 |
/recap |
手动触发回顾 |
/loop <时间> <提示> |
循环执行任务 |
/focus / /focus off |
切换 Focus 模式 |
/tui fullscreen |
启用无闪烁滚动模式 |
/tui default |
恢复传统模式 |
claude -p "..." |
非交互模式运行 |
-
之前那篇上手指南覆盖了安装配置、三种交互模式、Plan Mode、Figma MCP、CLAUDE.md、Hook、Agent Skill、SubAgent、Plugin 等基础功能,建议先看那篇再来看这篇。 ↩︎