78.1k+ star,又一款终端神器!


大家好,我是了不起!

在终端里找文件、翻历史命令,是不是总觉得效率低?手速跟不上眼速,找东西全靠运气。今天给大家介绍一款能让你在终端中快速筛选、查找、执行命令的神器 - fzf,它用交互式模糊查找彻底改变了我们与终端的交互方式,让你告别翻页和盲打,体验丝滑的搜索快感。

项目简介

fzf是一款用 Go 语言编写的通用命令行模糊查找器。它本质上是一个交互式过滤器,你可以通过管道将任何文本列表(文件、历史命令、进程、Git 提交等)输送给它,它会在终端启动一个交互界面,让你用模糊匹配的方式快速筛选,最终输出选中的结果。

项目在 GitHub 上已有 78.1k+ star,非常的热门。

功能特性

  • 模糊匹配算法:支持“模糊”匹配,即使你打错字或记不全名字,它也能智能匹配出你想要的结果,大大降低记忆负担。
  • 极速响应:经过优化,即使处理数百万条数据也能瞬间响应,让交互体验无比流畅。
  • 实时预览:支持预览功能,在选中文件前就能看到内容,结合 bat 等工具还能实现语法高亮,一目了然。
  • 灵活布局:支持多种显示模式,包括全屏、指定高度、反向布局等,可以根据喜好自定义界面。
  • 强大集成:提供 Bash、Zsh、Fish、Vim、Neovim 的集成脚本,开箱即用,一键绑定快捷键。
  • 高度定制:通过事件-动作绑定机制,你可以自定义搜索逻辑和触发动作,甚至可以把它当作构建交互式应用的框架。

快速安装使用

安装方式多样,推荐使用包管理器:

  • macOSbrew install fzf
  • Ubuntu/Debiansudo apt install fzf
  • Arch Linuxsudo pacman -S fzf

安装后,建议运行安装脚本以启用键绑定和模糊补全(以 Bash 为例):

1
2
# 执行安装脚本(会修改 shell 配置)
$(brew --prefix)/opt/fzf/install

基础使用

  1. 文件搜索:直接运行 fzf 会递归搜索当前目录下的文件(隐藏文件除外)。结合管道,你可以实现快速查找并操作:

    1
    2
    3
    4
    # 查找并打开文件
    vim $(fzf)
    # 更安全的处理方式(支持文件名含空格)
    fzf --print0 | xargs -0 -o vim
  2. 历史命令搜索:按下 Ctrl + R 即可调出历史命令搜索界面,输入关键词即可快速定位。

  3. 目录导航:结合 find 命令快速切换目录:

    1
    cd $(find * -type d | fzf)
  4. Git 分支切换:利用预览功能,你可以直观地查看分支内容并切换:

    1
    git branch | fzf --preview 'git show --color=always {-1}' | cut -c 3- | xargs git checkout
  5. 自定义键绑定:你可以在 shell 配置文件中设置默认选项,让 fzf 更符合你的使用习惯:

    1
    2
    # 设置默认选项(例如开启预览、指定布局)
    export FZF_DEFAULT_OPTS="--height 40% --layout reverse --preview 'bat -n --color=always {}'"

项目小结

fzf是一款真正能让命令行“活”起来的工具。它通过模糊匹配和交互式界面,将枯燥的文本过滤变成了直观的视觉搜索。无论是快速定位文件,还是翻找历史命令,它都能让你以极低的认知成本完成操作。如果你还在忍受缓慢的 find和笨拙的 grep,强烈建议你试试这个项目。

1
https://github.com/junegunn/fzf

文章作者: 开源小分队
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 开源小分队 !
  目录