02-opencode CLI 交互技巧

张开发
2026/5/18 19:22:27 15 分钟阅读
02-opencode CLI 交互技巧
02-CLI 交互技巧掌握 OpenCode 命令行高效交互技巧提升开发效率。一、自然语言命令格式1.1 命令结构OpenCode 理解自然语言指令无需记忆固定命令格式[动作] [对象] [参数/要求]示例# 动作 对象读取 README.md# 动作 对象 要求修改 app/main.py添加错误处理# 复杂指令为 User 模型创建完整的 CRUD API包含分页和搜索1.2 有效指令的特点好的指令不好的指令“创建 User 模型包含 username、email 字段”“帮我搞个用户的东西”“修复 app.py 第 15 行的类型错误”“这里有错修一下”“将所有 print 改为 logging.info”“改一下输出”二、会话管理2.1 开始新会话# 基本启动opencode# 指定工作目录opencode ./my-project# 指定配置文件opencode--config./custom-config.json# 指定模型opencode--modelclaude-opus-42.2 会话状态管理# 查看当前状态/status 输出示例 当前会话状态 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 工作目录: /home/user/projects/fastapi-demo 当前模型: claude-sonnet-4-20250514 API 提供商: default 对话轮数:23已加载文件:3- app/main.py - app/models/user.py - requirements.txt ━━━━━━━━━━━━━━━━━━━━━━━━━━━━2.3 结束和恢复会话# 正常退出保存上下文/exit 或exit# 强制退出不保存CtrlC# 恢复上次会话opencode--continue# 或简写opencode-c# 恢复指定会话opencode--sessionsessionID# 或简写opencode-ssessionID三、上下文管理技巧3.1 添加文件到上下文# 显式添加文件加载 app/models.py查看 app/routers/users.py# 批量添加分析 src/ 目录下的所有 Python 文件# 添加最近修改的文件查看最近修改的文件3.2 控制上下文范围# 限制分析范围仅分析 app/models/ 目录# 排除文件分析 src/ 目录但排除 tests/# 指定文件类型分析所有 .py 文件3.3 上下文管理# 压缩历史记录保留关键信息减少上下文长度/compact# 清除对话历史重新开始对话/clear# 查看当前状态已加载文件、对话轮数等/status会话恢复功能# 启动时恢复上次会话$ opencode--continue# 或简写$ opencode-c# 恢复指定会话$ opencode--sessionsessionID# 或简写$ opencode-ssessionID# 查看已有会话列表$ opencode session list四、高效输入技巧4.1 多行输入# 使用 heredoc 语法EOF 创建一个复杂的 User 模型要求 1. 包含基本字段id, username, email, password_hash 2. 添加创建时间和更新时间 3. 实现 email 验证 4. 添加与 Post 模型的关系 EOF4.2 快捷引用# 引用文件修复 app/main.py 中的问题# 引用函数/类优化 process_user 函数的性能# 引用行号查看第15-30 行五、命令组合与管道5.1 顺序执行# 分号分隔多个命令创建 User 模型;创建对应的 CRUD 路由;生成测试# 使用 then 关键字先创建数据库模型然后生成迁移脚本5.2 条件执行# 基于结果的条件检查代码风格如果有问题则修复# 确认后执行分析测试结果确认通过后生成报告六、搜索与导航6.1 代码搜索# 搜索文件内容搜索所有包含TODO的文件# 搜索特定模式查找所有未使用的import# 搜索并替换将所有user_name替换为username6.2 项目导航# 查看项目结构显示项目目录树# 查看文件关系分析模块依赖关系# 查找定义查找 User 类的定义位置七、交互模式切换7.1 高效对话技巧默认使用自然语言交互模式适合探索和讨论# 探索性讨论我想讨论一下这个架构设计# 明确任务指令生成 User 模型代码# 代码审查请求审查 app/ 目录的代码质量八、批量操作技巧8.1 批量文件处理# 批量生成为 models/ 下的所有模型生成 schemas# 批量修改在所有路由文件中添加错误处理# 批量删除删除所有 __pycache__ 目录8.2 使用通配符# 文件通配符分析 src/**/*.py# 排除模式分析 src/--excludetests/# 特定类型分析所有 JSON 配置文件九、输出控制9.1 上下文管理# 压缩历史记录保留关键信息节省上下文空间/compact# 清除对话历史重新开始/clear# 查看当前状态/status9.2 输出重定向OpenCode 生成的代码和文档会自动保存到项目目录。如需导出对话记录可使用终端重定向# 启动 OpenCode 并捕获输出到文件在 shell 中执行opencodesession-log.txt# 或使用 tee 同时显示和保存opencode|teesession-log.txt十、调试与故障排除10.1 安全确认机制OpenCode 在执行危险操作前会自动要求确认# 删除操作示例删除所有 .pyc 文件 ⚠️ 这将删除以下文件 - app/__pycache__/main.cpython-39.pyc - app/__pycache__/models.cpython-39.pyc 确认执行(y/n): y ✓ 已删除2个文件10.2 常见问题排查# 问题启动后无响应# 解决检查配置文件opencode --config-check# 问题AI 响应慢# 解决压缩历史记录/compact# 问题文件操作失败# 解决检查权限ls-la/path/to/project十一、高级技巧11.1 使用 Skills 提高效率通过 Skills 标准化常用操作# 使用内置或自定义 Skill/skill use fastapi-crud# 创建自定义 Skill参考 06-Skills复用.md11.2 渐进式操作对于复杂任务分步执行更安全# 先分析后操作先分析当前代码结构然后给出重构建议# 小步快跑第一步创建模型第二步添加验证第三步生成路由# 每步确认后再继续下一步11.3 会话管理# 启动时恢复上次会话opencode--continue# 或简写opencode-c# 恢复指定会话opencode--sessionsessionID# 或简写opencode-ssessionID# 查看已有会话列表opencode session list# 或在交互模式中查看状态/status十二、最佳实践12.1 指令清晰化# 明确指定范围仅修改 app/models/ 目录下的文件# 明确指定标准遵循 PEP8 规范格式化代码# 明确指定输出生成符合 OpenAPI3.0规范的文档12.2 渐进式操作# 先分析后操作先分析当前代码结构然后给出重构建议# 小步快跑第一步创建模型第二步添加验证第三步生成路由12.3 善用上下文# 使用 引用文件修复 app/main.py 中的问题# 使用 引用函数或类优化 process_user 函数的性能# 引用代码范围查看 app/main.py 第15-30 行十三、常用命令速查命令功能使用场景/help帮助信息忘记命令时/status查看状态了解当前上下文/clear清除历史历史太长时/compact压缩历史节省上下文空间/exit或exit退出结束会话时常用交互技巧技巧示例说明文件引用app/main.py快速引用项目文件代码范围第 15-30 行指定代码行范围分步指令先...然后...按顺序执行多个任务范围限制仅修改 app/models/限制操作范围十四、下一步掌握 CLI 交互技巧后建议学习03-MCP与工具调用.md - 扩展工具能力04-SubAgent任务分发.md - 并行处理任务08-OpenCode独有技巧.md - 进阶使用技巧文档版本: 1.0 | 建议学习时长: 30分钟

更多文章