用途
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 函数和高级工作流。