fzf – 无缝集成 Vim/Neovim 全能的命令行搜索神器

一款全能的命令行搜索神器,它能快速搜索文件、命令历史、进程、Git提交记录等,并支持预览内容。无论是查找配置文件、回顾旧命令,还是定位代码中的问题,都能助你一臂之力。

一个适用于任何类型列表的交互式过滤程序;文件、命令历史记录、进程、主机名、书签、git 提交等。它实现了一种“模糊”匹配算法,因此您可以快速输入带有省略字符的模式,并且仍然可以获得所需的结果,节省大量时间。

让我们举个例子。当你想用编辑器打开一个文件时。一般情况会这样操作:

  1. 首先,运行 ls 或 find 查看当前目录下的文件列表。
  2. 浏览列表找到要打开的文件。
  3. 如果列表太长,则向上滚动,或使用 grep 再次运行该命令以缩小列表范围。例如:ls | grep foo
  4. 最后,在命令行中键入文件名以打开它。例如,vim THE_FILE,可能需要按很多次 TAB 才能打开 a/file/deep/down/in/the/directory/tree

git 打开模式也类似,基本上是在用各种列表一遍又一遍地重复同样的过程。fzf 的创建就是为了简化这一核心流程。

优点

  • 可移植,无依赖性
  • 极快的速度
  • 用途极其广泛
  • 插件集成:bash/zsh/fish 集成、tmux 集成、Vim/Neovim 插件

安装

使用 Homebrew 

brew install fzf

Linux

包管理程序 Linux 版本 命令行
APK Alpine Linux sudo apk add fzf
APT Debian 9+/Ubuntu 19.10+ sudo apt install fzf
Conda conda install -c conda-forge fzf
DNF Fedora sudo dnf install fzf
Nix NixOS, etc. nix-env -iA nixpkgs.fzf
Pacman Arch Linux sudo pacman -S fzf
pkg FreeBSD pkg install fzf
pkgin NetBSD pkgin install fzf
pkg_add OpenBSD pkg_add fzf
Portage Gentoo emerge --ask app-shells/fzf
Spack spack install fzf
XBPS Void Linux sudo xbps-install -S fzf
Zypper openSUSE sudo zypper install fzf

Windows 

包管理程序 命令行
Chocolatey choco install fzf
Scoop scoop install fzf
Winget winget install fzf
MSYS2 (pacman) pacman -S $MINGW_PACKAGE_PREFIX-fzf

设置 shell 集成

FZF 附带 shell 集成脚本,这些脚本设置了有用的键绑定和模糊补全功能,因此即使您不熟悉 shell 脚本,FZF 仍然有用。

  • bash (~/.bashrc)

    eval "$(fzf --bash)"
  • zsh (~/.zshrc)

    source <(fzf --zsh)
  • fish (~/.config/fish/config.fish)

    fzf --fish | source

官方链接

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注