ZapMyCo
指南内置工具

file_search — 搜索文件内容

在本地文件系统中搜索文件内容,支持正则表达式

在本地文件系统中搜索文件内容,支持正则表达式。适用于查找代码定义、搜索关键词、分析项目结构等场景。

参数

参数类型必填说明
patternstring搜索模式(正则表达式)
pathstring搜索路径(目录或文件),默认当前目录
globstring文件通配符过滤,例如 "*.rs" 只搜索 Rust 文件
output_modestring输出模式:content(显示匹配行及行号,默认)、files_with_matches(仅显示文件名)、count(显示每个文件的匹配数)
-iboolean忽略大小写
-Ainteger匹配行后显示的上下文行数
-Binteger匹配行前显示的上下文行数
-Cinteger匹配行前后显示的上下文行数(优先级高于 -A/-B
head_limitinteger最大结果行数,默认 250
offsetinteger跳过前 N 条结果,与 head_limit 配合实现分页
multilineboolean启用多行模式,让 . 匹配换行符,支持跨行匹配
typestring文件类型过滤,例如 "rust""py""js""md"

约束与限制

限制项
搜索超时20 秒
输出最大长度100,000 字符(超出返回错误)
默认每模式结果上限250 行

输出模式

content(默认):

匹配 "pattern" 于 N 个文件 (M 处匹配)

path/to/file.rs:42:let result = pattern_match();
path/to/file.rs:58:another_match();

files_with_matches

匹配 "pattern" 于 N 个文件:

path/to/file1.rs
path/to/file2.rs

count

匹配 "pattern" 于 N 个文件 (共 M 处匹配):

  path/to/file1.rs:3
  path/to/file2.rs:5

错误场景

错误类型说明
缺少 pattern未提供必填参数 pattern
搜索超时搜索超过 20 秒
输出过大结果超过 100K 字符上限
路径无效指定的搜索路径不存在
搜索失败内部搜索引擎异常

分页说明

当匹配结果超过 head_limit(默认 250)时,输出末尾会显示分页提示:

---
[显示 250 / 1000 行,使用 offset=250 和 head_limit 进行分页]

AI Agent 可组合使用 offsethead_limit 参数遍历全部结果:

zapmyco run '搜索项目中的所有 TODO 注释,每页 200 条,先获取第 1 页'
zapmyco run '接着获取 TODO 搜索的第 2 页,offset=200'

使用示例

zapmyco run '在 src/ 目录中搜索所有包含 "unwrap" 的 Rust 代码'
zapmyco run '搜索项目中所有 FIXME 注释,忽略大小写'
zapmyco run '统计项目中 JavaScript 和 TypeScript 文件的函数定义数量'

相关文档

On this page