工具概览
Cursor 提供了一系列强大的工具来帮助开发者提高工作效率。本指南将通过具体实例来展示这些工具的使用方法。
1. 目录文件操作
1.1 查看目录内容 (list_dir)
使用 list_dir 命令可以查看指定目录下的文件结构:
示例:
list_dir logic # 查看 logic 目录内容
list_dir services # 查看 services 目录内容
list_dir tests # 查看测试目录内容
实际使用案例:
- 查看项目整体结构
- 定位特定类型文件
- 了解模块组织方式
1.2 读取文件内容 (read_file)
使用 read_file 可以查看文件具体内容:
- 用途:读取指定文件的内容
- 使用场景:查看代码实现、检查配置文件、分析日志等
- 特点:可以指定行号范围,支持部分读取
示例:
read_file logic/user_logic.go # 读取整个文件
read_file services/auth.go 10 50 # 读取第10-50行
read_file repository/model/user.go 1 100 # 读取前100行
2. 代码搜索功能
2.1 语义化搜索 (codebase_search)
codebase_search 支持语义化的代码搜索:
语法:codebase_search A [B]
- A:搜索内容
- B:(可选)搜索范围
示例:
codebase_search "用户认证相关的代码"
codebase_search "数据库连接池配置" "repository"
codebase_search "错误处理逻辑" "controller"
使用场景:
- 查找特定功能实现
- 寻找相似代码片段
- 理解代码结构
2.2 精确搜索 (grep_search)
使用 grep_search 进行精确文本匹配:
- 用途:查找精确的文本或正则表达式匹配
- 使用场景:查找函数调用、变量使用、特定字符串等
- 特点:支持正则表达式,可以指定文件类型
示例:
grep_search "func NewUserService" # 搜索函数定义
grep_search "db.Query" "*.go" # 在Go文件中搜索数据库查询
grep_search "ERROR:" "*.log" # 在日志文件中搜索错误
2.3 文件搜索 (file_search)
- 用途:基于文件名进行模糊搜索
- 使用场景:快速定位文件位置,不确定完整路径时
- 特点:支持模糊匹配,搜索速度快
示例:
file_search user_service # 搜索包含user_service的文件
file_search test.go # 搜索所有test.go文件
file_search config.yaml # 搜索配置文件
3. 代码编辑操作
3.1 修改文件 (edit_file)
- 用途:修改文件内容
- 使用场景:代码修改、bug修复、功能增强等
- 特点:支持精确定位,可以指定修改范围
示例:
edit_file services/user_service.go # 编辑用户服务文件
edit_file repository/model/user.go # 编辑用户模型文件
edit_file controller/auth_controller.go # 编辑认证控制器
3.2 重新应用修改 (reapply)
- 用途:重新应用上一次的编辑操作
- 使用场景:当edit_file的修改结果不符合预期时
- 特点:智能重试,提高修改成功率
示例:
reapply services/user_service.go # 重新应用对用户服务的修改
reapply controller/auth_controller.go # 重新应用对控制器的修改
4. 实用场景示例
4.1 代码重构
- 使用 codebase_search 找到相关代码
- 用 grep_search 确认所有调用点
- 用 read_file 详细检查
- 用 edit_file 进行修改
- 用 run_terminal_cmd 运行测试
4.2 问题排查
- 用 file_search 定位相关文件
- 用 grep_search 查找错误信息
- 用 read_file 分析代码
- 用 codebase_search 寻找类似问题
5. 注意事项
5.1 工具选择建议
- 语义搜索 vs 精确搜索
- 需要理解功能时用 codebase_search
- 需要精确查找时用 grep_search
- 文件操作
- 查看内容用 read_file
- 修改内容用 edit_file
- 目录浏览用 list_dir
5.2 常见问题
Q: 如何选择合适的搜索工具? A: 根据需求选择:
- 了解功能实现:codebase_search
- 查找具体使用:grep_search
- 定位文件:file_search
Q: 修改失败怎么办? A: 可以:
- 使用 reapply 重试
- 调整修改内容
- 确认文件权限
6. 最佳实践
-
信息收集
- 先用 list_dir 了解结构
- 用 file_search 定位文件
- 用 codebase_search 查找实现
-
代码分析
- 用 read_file 查看实现
- 用 grep_search 查找依赖
- 用 codebase_search 找相似代码
-
修改实现
- 用 edit_file 修改代码
- 必要时用 reapply
- 用 run_terminal_cmd 测试
-
验证修改
- 用 read_file 确认修改
- 用 grep_search 检查影响
- 运行相关测试