
文件搜索神器fzf,名气很大,很快,很强大。 fzf 是一个通用的命令行模糊查找器。
它是一个交互式 Unix 命令行过滤器,可用于任何列表;文件、命令历史、进程、主机名、书签、git 提交等。
项目地址: https://github.com/junegunn/fzf
优点- 便携,无依赖
- 极快
- 最全面的功能集
- 灵活的布局
- 包括电池
- Vim/Neovim 插件、键绑定和模糊自动完成
您可以使用Homebrew(在 macOS 或 Linux 上)安装 fzf。
brew install fzf
使用 Linux 包管理器
Package ManagerLinux DistributionCommandAPKAlpine Linuxsudo apk add fzfAPTDebian 9+/Ubuntu 19.10+sudo apt-get install fzfCondaconda install -c conda-forge fzfDNFFedorasudo dnf install fzfNixNixOS, etc.nix-env -iA nixpkgs.fzfPacmanArch Linuxsudo pacman -S fzfpkgFreeBSDpkg install fzfpkginNetBSDpkgin install fzfpkg_addOpenBSDpkg_add fzfXBPSVoid Linuxsudo xbps-install -S fzfZypperopenSUSEsudo zypper install fzf
其他系统的安装参情请参考https://github.com/junegunn/fzf
用法fzf 将启动交互式查找器,从 STDIN 读取列表,并将所选项目写入 STDOUT。
find * -type f | fzf > selected
如果没有 STDIN 管道,fzf 将使用 find 命令获取不包括隐藏文件的文件列表。(您可以使用 覆盖默认命令 FZF_DEFAULT_COMMAND)
vim $(fzf)
使用取景器
CTRL-K/CTRL-J(或CTRL-P/CTRL-N)上下移动光标Enter键选择项目,CTRL-C/CTRL-G/ESC退出- 在多选模式下(
-m),TAB并Shift-TAB标记多个项目 - Emacs 样式键绑定
- 鼠标:滚动、单击、双击;多选模式下的 shift-click 和 shift-scroll
配置 如果要更方便的使用fzf,而不输入那么多命令,那就直接在shell的配置里加一个环境变量即可。
这个环境变量名叫FZF_DEFAULT_OPTS,所有fzf的配置都写在这一个变量里:
export FZF_DEFAULT_OPTS="--height 40% --layout=reverse --preview '(highlight -O ansi {} || cat {}) 2> /dev/null | head -500'"
我的配置如下: 编辑环境变量nvim ~/.zshrc
#fzf配置
export FZF_DEFAULT_OPTS="--height 40% --layout=reverse --preview '(highlight -O ansi {} || cat {}) 2> /dev/null | head -500'"
function vf(){
nvim $(fzf)
}
这样在命令行中输入vf就可以直接命令行搜索文件并用nvim打开文件了。 
https://github.com/junegunn/fzf https://www.jianshu.com/p/d64553a37d69
