junegunn/fzf
通用命令行模糊查找工具,可过滤任意输入列表,并为 Shell 脚本提供交互式终端选择界面。
- Star
- 83,703
- Fork
- 5,336
- 未关闭 Issue
- 336
- 最近提交
- 8小时前
这是什么?
fzf 从标准输入读取列表,通过输入模糊查询交互式地缩小范围,并把选中的条目输出到标准输出。由于它处理的是任意文本流,可用于文件、命令历史、进程列表、Git 分支等任何可以通过管道传入的内容。
除了基本选择功能,fzf 还提供预览窗口(对当前条目执行命令并显示结果)、多选模式、可自定义的快捷键,以及全屏、光标下方固定高度、tmux 或 Zellij 弹出窗口等显示模式。它以单个二进制文件分发,并为 Bash、Zsh、Fish 和 Nushell 提供 Shell 集成,支持 CTRL-T、CTRL-R 等快捷键和模糊补全。
它还包含事件驱动的动作机制,可重新加载列表、执行外部程序或将自身替换为其他进程,便于构建自定义终端界面。Vim 与 Neovim 集成则通过单独的插件提供。
核心功能
- 01从标准输入读取任意按行分隔的内容,并进行模糊匹配过滤。
- 02支持精确、前缀、后缀及反向匹配等扩展搜索语法。
- 03提供预览窗口,可对当前选中条目执行命令并显示结果。
- 04支持全屏、固定高度以及 tmux / Zellij 弹出窗口等显示方式。
- 05与 Bash、Zsh、Fish、Nushell 集成,用于历史搜索和路径补全。
- 06以单个二进制文件分发,可通过 Homebrew、apt、Scoop 等多种包管理器安装。
适用场景
- 在终端中通过模糊选择器快速查找并打开文件。
- 用 CTRL-R 搜索 Shell 命令历史,免去逐行翻找。
- 在 Shell 脚本中构建交互式选择菜单。
- 结合实时预览浏览 Git 分支、进程或日志输出。
快速上手
- 1
使用 Homebrew 安装 fzf
brew install fzf - 2
在 bash 配置文件中添加以下内容以启用快捷键和模糊补全
eval "$(fzf --bash)" - 3
运行 fzf 启动交互式查找器
fzf
标签
常见问题
- fzf 是什么?
- 通用命令行模糊查找工具,可过滤任意输入列表,并为 Shell 脚本提供交互式终端选择界面。 fzf 从标准输入读取列表,通过输入模糊查询交互式地缩小范围,并把选中的条目输出到标准输出。由于它处理的是任意文本流,可用于文件、命令历史、进程列表、Git 分支等任何可以通过管道传入的内容。
- fzf 可以免费使用吗?用的什么许可证?
- fzf 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- fzf 还在维护吗?
- 活跃维护中。fzf 最近一次提交是在 2026年10月20日。
- fzf 适合用来做什么?
- 在终端中通过模糊选择器快速查找并打开文件。 用 CTRL-R 搜索 Shell 命令历史,免去逐行翻找。 在 Shell 脚本中构建交互式选择菜单。 结合实时预览浏览 Git 分支、进程或日志输出。
- fzf 怎么安装和运行?
- 使用 Homebrew 安装 fzf: brew install fzf 在 bash 配置文件中添加以下内容以启用快捷键和模糊补全: eval "$(fzf --bash)" 运行 fzf 启动交互式查找器: fzf
- 在哪里获取 fzf?
- 源代码和安装说明在 GitHub 上:https://github.com/junegunn/fzf
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一个更智能的 cd 命令,记住常用目录,几个按键即可跳转,支持主流 shell。
4万935RustMIT更新于 3天前
一个符合 POSIX 标准的 bash 脚本,用于在用户和 shell 级别安装并切换多个 Node.js 版本。
9.6万1.1万ShellMIT更新于 11天前
Warp 是一款从终端演化而来的智能体开发环境,内置编码智能体,也可接入你自己的 CLI 智能体。
6.6万5685RustAGPL-3.0更新于 6小时前
基于 JavaScript 编写 Shell 风格脚本的工具,封装 child_process 并自动转义参数,兼容多平台。
4.6万1320JavaScriptApache-2.0更新于 9天前