~/content/技巧与效率提升

技巧与效率提升

掌握OpenCode的高效使用技巧、键盘快捷键和最佳实践。学习如何更快更高效地使用AI辅助编程。

last_updated: "2025-01-19"

##必备键盘快捷键

掌握这些快捷键可以大幅提升你的工作效率。

###导航

| 快捷键 | 操作 | |--------|------| | Ctrl+C | 取消当前操作 | | Ctrl+L | 清屏 | | Ctrl+R | 搜索命令历史 | | Tab | 自动补全命令 | | ↑/↓ | 浏览历史记录 |

###编辑

| 快捷键 | 操作 | |--------|------| | Ctrl+A | 移动到行首 | | Ctrl+E | 移动到行尾 | | Ctrl+W | 向后删除单词 | | Ctrl+U | 删除整行 | | Ctrl+K | 删除到行尾 |

###会话控制

| 快捷键 | 操作 | |--------|------| | Ctrl+D | 退出OpenCode | | Ctrl+Z | 挂起到后台 | | Esc | 取消多行输入 |

##高效提示词技巧

###保持具体明确

不要这样写:

bash
修复bug

应该这样写:

bash
修复 src/utils/parser.ts 第45行的空指针异常,
该异常在解析空JSON数组时发生

###提供上下文

不要这样写:

bash
添加验证

应该这样写:

bash
在 components/SignupForm.tsx 的注册表单中添加邮箱验证,
使用 lib/validators.ts 中已有的验证工具

###使用分步指令

对于复杂任务,分解步骤:

bash
我需要为API添加缓存层:
1. 首先,分析 src/api/ 中的当前API结构
2. 为GET端点设计缓存策略
3. 使用Redis实现,TTL设为5分钟
4. 在POST/PUT/DELETE时添加缓存失效
5. 为缓存逻辑编写测试

##斜杠命令

快捷命令提升效率:

| 命令 | 描述 | |------|------| | /help | 显示所有可用命令 | | /clear | 清除对话历史 | | /model | 切换AI模型 | | /compact | 压缩对话 | | /cost | 显示token使用和费用 | | /diff | 显示待处理的文件更改 | | /undo | 撤销上次文件更改 |

###自定义斜杠命令

~/.config/opencode/commands.yaml 中创建自定义命令:

bash
commands:
  /review:
    description: "代码审查当前更改"
    prompt: |
      审查当前git diff中的:
      - 代码质量问题
      - 潜在bug
      - 安全隐患
      - 性能问题
      为发现的每个问题提供具体建议。

  /commit:
    description: "生成提交信息"
    prompt: |
      分析暂存的更改并生成符合规范的提交信息。
      格式:<类型>(<范围>): <描述>

  /doc:
    description: "生成文档"
    prompt: |
      为选中的代码生成完整的JSDoc/TSDoc文档。
      包含参数描述、返回类型和示例。

##上下文管理

###使用@引用

引用特定文件或符号:

bash
@src/components/Button.tsx 添加悬停动画
@useAuth hook 添加token刷新逻辑
@package.json 更新React到最新版本

###目录上下文

处理整个目录:

bash
@src/api/ 重构所有端点使用async/await
@tests/ 更新所有测试使用新的mock系统

###Git上下文

引用git状态:

bash
@git:staged 在提交前审查这些更改
@git:branch:feature-auth 显示与main的差异

##工作流优化

###基于模板开发

为常见任务创建可重用的提示词:

bash
你:/template component

OpenCode:正在创建新的React组件...
- 名称:[UserProfile]
- Props:[user: User, onEdit: () => void]
- 样式:[Tailwind CSS]
- 测试:[是]

###迭代式开发

逐步构建复杂功能:

bash
步骤1:"创建产品的基本CRUD API"
步骤2:"为列表端点添加分页"
步骤3:"添加按类别和价格范围筛选"
步骤4:"为频繁访问的产品添加缓存"
步骤5:"添加完善的错误处理"

###并行任务

同时处理多个任务:

bash
在你实现前端表单的同时,也:
1. 创建API端点
2. 设置表单验证schema
3. 编写集成测试

##配置技巧

###针对技术栈优化

bash
# ~/.config/opencode/config.yaml
context:
  # 自动包含相关文件
  auto_include:
    - "package.json"
    - "tsconfig.json"
    - ".env.example"

  # 排除干扰
  exclude_patterns:
    - "node_modules/**"
    - "dist/**"
    - "*.log"

# 技术栈特定设置
presets:
  react:
    include: ["src/components/**", "src/hooks/**"]
  api:
    include: ["src/routes/**", "src/middleware/**"]

###自定义模型预设

bash
model_presets:
  quick:
    model: claude-3-5-haiku
    max_tokens: 1000

  thorough:
    model: claude-opus-4-20250514
    max_tokens: 8000
    temperature: 0.1

  creative:
    model: gpt-4o
    temperature: 0.8

##性能优化

###1. 选择合适的模型

  • 快速任务:使用Haiku或GPT-4o-mini
  • 复杂分析:使用Opus或GPT-4o
  • 大型代码库:使用Gemini的200万上下文

###2. 最小化上下文

bash
# 只包含必要文件
context:
  max_files: 20
  max_tokens: 50000

###3. 启用缓存

bash
cache:
  enabled: true
  ttl: 3600  # 1小时
  max_size: 100MB

###4. 使用压缩模式

长会话时压缩上下文:

bash
/compact

##调试技巧

###详细模式

查看OpenCode的操作:

bash
opencode --verbose
# 或
export OPENCODE_DEBUG=1

###查看Token使用

实时监控费用:

bash
/cost

###检查上下文

查看包含了哪些文件:

bash
/context show

##最佳实践

###1. 先理解再行动

在修改前:

bash
分析这个代码库中的认证流程,解释用户会话是如何管理的。

###2. 接受前先审查

始终审查建议的更改:

bash
/diff

###3. 频繁提交

使用原子提交:

bash
/commit
git push

###4. 边开发边写文档

与代码一起生成文档:

bash
实现这个函数后,添加JSDoc文档。

###5. 测试驱动方法

先写测试:

bash
先为用户注册编写失败的测试,然后实现功能使测试通过。

##常用模式

###Bug修复模式

bash
1. "显示错误和第X行附近的相关代码"
2. "什么导致了这个问题?"
3. "修复bug并添加测试防止回归"
4. "/diff" 审查
5. "/commit" 带描述性信息

###功能开发模式

bash
1. "分析类似功能是如何实现的"
2. "规划[功能]的实现"
3. "逐步实现,从[组件]开始"
4. "为新功能添加测试"
5. "更新文档"

###代码审查模式

bash
1. "@git:staged 审查这些更改"
2. "关注[安全性/性能/可读性]"
3. "建议改进"
4. "应用批准的建议"
Comments (Coming Soon)

Configure Giscus in environment variables to enable comments.