SuperAPI AI 工具集

file-search

编程与开发

查看项目

更新于 10-13 16:43

技能介绍

用途

file-search 用于在代码库中进行现代文件与内容搜索,主要依托 fd、ripgrep(rg)和 fzf 三个命令行工具完成文件查找、内容检索和交互式选择。当用户提到 fd、ripgrep、rg、find files、search code、fzf、fuzzy find、search codebase 等触发词时,该技能会被启用。

主要能力

fd:查找文件

  • 按名称查找:fd config 查找包含 "config" 的文件;fd -e py 查找 Python 文件。
  • 按类型查找:fd -t f config 仅查找文件;fd -t d src 仅查找目录。
  • 排除:fd -E node_modules 排除目录;fd -E "*.min.js" 排除匹配模式。
  • 对结果执行命令:fd -e py -x wc -l 对每个 Python 文件统计行数。

rg:搜索内容

  • 简单搜索:rg "TODO" 查找 TODO;rg -i "error" 不区分大小写搜索。
  • 按文件类型:rg -t py "import" 仅在 Python 文件中搜索;rg -t js -t ts "async" 在 JS 和 TS 中搜索。
  • 上下文:rg -C 3 "function" 显示匹配行前后各 3 行。
  • 输出模式:rg -l "TODO" 仅输出文件名;rg -c "TODO" 统计每个文件的匹配数。

fzf:交互式选择

  • 查找并选择:fd | fzf。
  • 带预览:fd | fzf --preview 'bat --color=always {}'。
  • 多选:fd -e ts | fzf -m | xargs code。

组合模式

  • 先查找文件,再搜索内容:fd -e py -x rg "async def" {}。
  • 搜索、选择、打开:rg -l "pattern" | fzf --preview 'rg -C 3 "pattern" {}' | xargs vim。

快速参考

  • 查找 TS 文件:fd -e ts
  • 在 src 中查找:fd -e ts src/
  • 搜索模式:rg "pattern"
  • 按类型搜索:rg -t py "import"
  • 包含匹配的文件:rg -l "pattern"
  • 统计匹配数:rg -c "pattern"
  • 交互式:fd | fzf
  • 带预览:fd | fzf --preview 'bat {}'

性能提示

  • fd 和 rg 都遵循 .gitignore,自动跳过 node_modules、dist。
  • 使用 -t 而非 -g,类型标志更快。
  • 缩小路径范围:rg pattern src/ 更快。
  • 使用 -F 处理字面量,避免正则开销。

附加资源

如需详细模式,可加载 ./references/advanced-workflows.md,其中包含 Git 集成、shell 函数和高级工作流。