fzf 命令行模糊查找器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/fzf-command-line-fuzzy-finder。
技能介绍
解决什么问题
在终端里干活时,总会遇到要在长列表中找目标的场景:十几个长得差不多的目录名、翻不完的命令历史、几十个 git 分支。传统做法是敲 ls 然后肉眼扫,或者用 grep 拼命令,但输错一个字母就匹配不上,列表太长还得反复翻页。fzf 把这件事变成一次交互式过滤:边打字边筛,允许漏字符和拼写错误,命中项即时浮到顶部。
核心能力与工作方式
fzf 的核心是一个模糊匹配算法,它不要求关键词按顺序完整输入。输入 bnch 可以匹配 branch,输入 git ch 也能命中 git checkout。它作为一个交互式过滤器接在任意列表源之后,常见用法包括:
- 文件名查找:管道接到
find或ls的输出,边输入边过滤 - 历史命令检索:绑定到 shell prompt 后,按快捷键唤起,输入片段即可筛历史
- 进程与分支选择:把
ps输出或git branch列表喂给它,交互式挑选而不是回忆全名 - 剪贴板辅助:
CTRL-Y把当前选中行拷到剪贴板并退出(依赖pbcopy)
它不需要 ** 这类触发序列,激活方式由 shell 配置决定,通常绑定快捷键即可唤起。
适用边界与注意点
fzf 依赖终端环境,不是所有场景都适合:
- tmux 需 3.3+,Zellij 需 0.44+,旧版本下交互式 UI 可能异常
- 剪贴板功能依赖系统工具,如 macOS 的
pbcopy,Linux 上需另配xclip或wl-copy - 处理超长列表时启动有开销,若列表来源本身很慢,瓶颈会转移给上游命令
- 模糊匹配偏宽松,短关键词容易命中多条结果,建议输入更有区分度的片段
使用场景
- 项目目录嵌套很深,想直接打开某个配置文件,不想一层层 cd 手动找路径
- 只记得命令开头几个字母,要从 shell 历史里翻出之前用过的 docker 启动命令
- 仓库有几十个分支,要切到临时创建的 feature 分支,记不全完整分支名
- ps 输出的进程列表很长,想快速定位某个服务进程而不是肉眼逐行扫
适合人员
- 每天在终端里跳转多个项目目录、频繁找文件路径的后端工程师
- 管理含大量分支的仓库、经常切换分支又记不住分支全名的开发者
- 需要在 ps 输出里快速定位异常服务进程并处理的运维人员
- 依赖命令历史找之前用过的长命令、不想手动 grep 历史文件的工程师