fzf:命令行模糊查找工具

9 阅读2分钟

fzf:命令行模糊查找工具

fzf 在 GitHub 上已经拿到 80,231 Star 了。 junegunn 开源了这个工具,专门做通用命令行模糊查找,支持文件、命令历史、进程、主机名等各类列表的快速筛选,搭配模糊匹配算法,输入部分字符就能得到对应结果。

1、 这玩意儿是干嘛的

就一件事:给命令行提供交互式模糊筛选能力。 不管是找文件、翻历史命令、选运行中的进程、查git提交记录,所有能列成列表的内容,都可以通过fzf快速定位。它实现了模糊匹配算法,不用输入完整关键词,敲几个字符就能过滤出符合预期的结果。

正文顶部截图

2、 核心特性

fzf以单二进制文件分发,不需要额外依赖,安装过程简单。代码经过性能优化,处理百万级条目也能做到即时响应。它支持事件-动作绑定机制,用户可以根据自己的使用习惯自定义功能。官方自带Bash、Zsh、Fish、Vim、Neovim的集成方案,不用额外配置就能直接在这些环境中使用。

README区域截图

3、 使用方式

安装支持多种渠道,Homebrew、Mise、各Linux发行版的软件源、Windows包管理器都能直接安装,也可以通过git克隆源码或者直接下载二进制包使用。 基础使用只需要把列表内容通过管道传给fzf,比如find . -type f | fzf就能筛选当前目录下的文件。选中结果后可以直接返回给后续命令执行。 它提供两种显示模式,--height模式可以指定fzf窗口占用的终端高度,不占满整个终端;--popup模式可以在当前终端弹出悬浮窗口,不影响当前页面的内容显示。 搜索支持自定义语法,可以精确匹配某个字段,排除不需要的结果,还能通过环境变量或者命令行参数自定义界面的颜色、布局、快捷键等。

4、 适合哪些场景

  • 日常命令行操作,需要快速查找文件、翻历史命令的开发者
  • 编写shell脚本,需要交互式选择选项的场景
  • Vim/Neovim用户,需要增强编辑器内的文件查找、缓冲区切换能力
  • 自定义工作流,需要给各类列表添加筛选能力的使用者

开源地址:github.com/junegunn/fz…