02-CLI 交互技巧

掌握 Claude Code CLI 的高效交互方式,提升命令行开发效率。


一、输入技巧

1.1 多行输入

Claude Code 支持多行输入,适合复杂指令:

# 方式1:直接粘贴多行文本
> 帮我创建一个 Python 类,要求如下:
  1. 类名:DataProcessor
  2. 功能:处理 CSV 数据
  3. 方法:
     - read_data(file_path)
     - clean_data()
     - save_data(output_path)
  4. 添加类型注解

# 方式2:使用换行
> 请分析 src/main.py
  重点关注:
  - 函数设计是否合理
  - 是否有性能瓶颈
  - 异常处理是否完善

1.2 快捷输入

快捷键 功能
Ctrl+C 取消当前输入/退出
Ctrl+D 退出(发送 EOF)
/ 浏览历史命令
Tab 自动补全(文件路径)

1.3 文件路径补全

# 输入 @ 后按 Tab 补全文件路径
> 读取 @src/ma<Tab>
> 读取 @src/main.py

# 支持模糊匹配
> 分析 @utils<Tab>
# 显示所有包含 utils 的文件

二、上下文管理

2.1 文件引用技巧

# 引用单个文件
> @src/main.py 的作用是什么?

# 引用多个文件(比较)
> 比较 @src/v1/api.py 和 @src/v2/api.py

# 引用目录
> 分析 @src/models/ 目录下所有模型类

# 引用特定行
> 优化 @src/utils.py#45-60 这段代码

# 引用符号
> 解释 @UserService 类的设计

2.2 会话上下文

# 查看当前上下文
> 当前项目的主要文件有哪些?

# 上下文会保留,可以追问
> 刚才提到的那个函数具体怎么实现?

# 清除上下文重新开始
> /clear

2.3 上下文长度管理

# 当对话太长时,压缩历史
> /compact

# Claude 会总结之前的对话要点
# 继续在新的上下文中讨论

三、高效提问模式

3.1 STAR 提问法

Situation(情境):当前文件/项目状态
Task(任务):具体要完成什么
Action(行动):希望 AI 采取什么操作
Result(结果):期望的输出格式

示例:

> 【情境】src/api.py 是一个 FastAPI 路由文件
  【任务】需要添加用户认证中间件
  【行动】在现有路由上添加 JWT 验证
  【结果】返回修改后的完整代码,并说明使用方法

3.2 分步提问

将复杂任务分解为多个简单步骤:

# 第1步:分析
> 分析 src/auth.py 的当前实现

# 第2步:设计(基于分析结果)
> 基于刚才的分析,设计 JWT 认证中间件

# 第3步:实现
> 实现刚才设计的中间件,集成到 src/api.py

# 第4步:测试
> 为这个中间件生成单元测试

3.3 模板化提问

# 代码生成模板
> 创建一个 [类型],要求:
  - 功能:[具体功能]
  - 输入:[参数说明]
  - 输出:[返回值说明]
  - 异常:[错误处理]

# 代码审查模板
> 审查 @文件,关注:
  - 代码规范性
  - 性能问题
  - 安全隐患
  - 可维护性

# 重构模板
> 重构 @文件,改进:
  - [具体问题1]
  - [具体问题2]
  保持原有功能不变

四、输出控制

4.1 控制输出格式

# 指定输出格式
> 以表格形式列出项目中的所有 API 端点

> 用代码块返回修改后的函数

> 先给出简要分析,再提供详细建议

4.2 控制输出长度

# 要求简洁
> 简要说明 src/main.py 的功能(不超过 100 字)

# 要求详细
> 详细分析 src/auth.py 的设计,包括:
  1. 架构说明
  2. 优缺点分析
  3. 改进建议

4.3 多轮精炼

# 第1轮:获取初稿
> 创建一个日志工具类

# 第2轮:添加要求
> 为这个类添加异步支持

# 第3轮:进一步优化
> 添加日志轮转功能,限制单个文件大小为 10MB

五、错误处理

5.1 常见错误类型

错误 原因 解决
AI 理解偏差 上下文不足 添加 @文件引用
输出不符合预期 要求不明确 使用模板化提问
操作被拒绝 权限/安全限制 检查文件权限
命令执行失败 环境问题 检查环境配置

5.2 纠正 AI 输出

# 指出错误
> 刚才的代码有个问题:缺少异常处理

# 要求修改
> 请重新生成,添加 try-except 块

# 确认理解
> 这次对了。还有,记得添加类型注解

5.3 撤销操作

# 如果 AI 执行了错误操作
> 撤销刚才的文件修改

# Claude 会使用 Git 回滚更改

六、批量操作技巧

6.1 批量文件处理

# 批量修改
> 将 @src/ 目录下所有 Python 文件的 print 改为 logging

# 批量生成
> 为 @src/models/ 下每个类生成对应的测试文件

# 批量分析
> 分析 @tests/ 下所有测试文件,找出重复代码

6.2 使用通配符

# 使用 * 通配符
> 检查 @src/*_service.py 文件的错误处理

# 多个模式
> 比较 @src/*.py 和 @tests/test_*.py 的命名规范

6.3 条件处理

# 条件批量操作
> 在 @src/ 下所有使用了 requests 的文件中,
  添加超时参数 timeout=30

# 智能识别
> 找出项目中所有没有类型注解的函数,并添加注解

七、与外部工具集成

7.1 编辑器集成

# 在 Cursor 中打开文件
> 在 cursor 中打开 src/main.py

# 在 VSCode 中打开
> 在 code 中打开 src/main.py

# 使用 vim 编辑
> 使用 vim 编辑 src/config.py

7.2 终端命令结合

# 结合 git
> 查看 git log,总结最近 5 次提交的主要改动

# 结合测试
> 运行 pytest,分析失败的测试用例

# 结合 lint
> 运行 flake8,修复所有格式问题

7.3 管道操作

# 读取命令输出并分析
> 执行 "find . -name '*.py' | head -10",
  分析这些文件的用途

八、实战场景

场景1:代码审查流程

# Step 1: 获取文件列表
> 列出 src/ 目录下所有 Python 文件

# Step 2: 批量审查
> 审查这些文件,检查:
  1. 是否符合 PEP8
  2. 是否有类型注解
  3. 异常处理是否完善

# Step 3: 生成报告
> 生成审查报告,按文件列出问题和建议

场景2:功能开发流程

# Step 1: 需求分析
> 分析需求:添加用户注册功能

# Step 2: 技术方案
> 设计注册功能的实现方案,包括:
  - 数据模型
  - API 接口
  - 验证逻辑

# Step 3: 代码实现
> 实现刚才设计的方案,创建必要的文件

# Step 4: 测试验证
> 为注册功能生成单元测试
> 运行测试验证功能是否正常

场景3:问题排查流程

# Step 1: 描述问题
> 测试 test_api.py 失败了,帮我排查原因

# Step 2: 查看错误
> 运行 pytest tests/test_api.py -v,分析错误输出

# Step 3: 定位问题
> 查看 @src/api.py#45-60,这个函数是否有问题?

# Step 4: 修复验证
> 修复问题并重新运行测试

九、最佳实践

9.1 提问原则

原则 说明 示例
具体 明确文件和位置 “优化 @src/utils.py#45”
完整 提供足够上下文 “当前使用 Flask,要迁移到 FastAPI”
可验证 输出可以测试 “生成可运行的代码”
可追溯 保留修改历史 使用 Git 管理变更

9.2 效率技巧总结

1. 使用 @符号快速引用文件
2. 善用历史命令(↑↓键)
3. 复杂任务分步处理
4. 批量操作提高效率
5. 结合外部工具(git、pytest 等)

十、下一步学习

完成本指南后,建议学习:

  1. 03-MCP与工具调用.md - 扩展 AI 能力
  2. 04-SubAgent任务分发.md - 并行任务处理

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐