一款全能的命令行搜索神器,它能快速搜索文件、命令历史、进程、Git提交记录等,并支持预览内容。无论是查找配置文件、回顾旧命令,还是定位代码中的问题,都能助你一臂之力。
一个适用于任何类型列表的交互式过滤程序;文件、命令历史记录、进程、主机名、书签、git 提交等。它实现了一种“模糊”匹配算法,因此您可以快速输入带有省略字符的模式,并且仍然可以获得所需的结果,节省大量时间。
让我们举个例子。当你想用编辑器打开一个文件时。一般情况会这样操作:
- 首先,运行
ls
或find
查看当前目录下的文件列表。 - 浏览列表找到要打开的文件。
- 如果列表太长,则向上滚动,或使用
grep
再次运行该命令以缩小列表范围。例如:ls | grep foo
- 最后,在命令行中键入文件名以打开它。例如,
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