Skip to content

搜索工具

在大型代码库里找东西,全靠 Glob 和 Grep。一个按文件名找,一个按内容找。简单但高效。

Glob — 文件名搜索

基于 glob 模式匹配文件路径:

typescript
Glob({
  pattern: "src/**/*.tsx",    // 所有 TSX 文件
  path: "/project"            // 搜索起点
})
  • 支持标准 glob 语法(*, **, ?, {a,b}
  • 结果按修改时间排序
  • 任意代码库规模都能快速返回

常用模式

模式用途
**/*.ts所有 TypeScript 文件
src/**/index.tssrc 下所有入口文件
*.{js,ts,tsx}多扩展名匹配
!**/node_modules/**排除 node_modules

Grep — 内容搜索

基于 ripgrep 的高性能内容搜索:

typescript
Grep({
  pattern: "function\s+\w+",  // 正则:所有函数定义
  type: "ts",                    // 只搜 TypeScript 文件
  output_mode: "content",        // 显示匹配行
  context: 3                     // 显示前后 3 行上下文
})

输出模式

模式返回内容
files_with_matches只返回文件路径(默认)
content返回匹配行及上下文
count返回匹配计数

高级特性

  • 完整正则语法
  • 按文件类型过滤(type: "js"
  • Glob 模式过滤(glob: "*.tsx"
  • 多行匹配(multiline: true
  • 结果分页(offset + head_limit

Glob vs Grep 选择

  • 知道文件名模式 → Glob
  • 知道文件内容关键词 → Grep
  • 两个都不确定 → 先 Glob 缩小范围,再 Grep 搜内容