~/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.