Repolode
junegunn

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. 1

    使用 Homebrew 安装 fzf

    brew install fzf
  2. 2

    在 bash 配置文件中添加以下内容以启用快捷键和模糊补全

    eval "$(fzf --bash)"
  3. 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 数据每日更新。

相关项目