文件搜索神器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 fzf
APTDebian 9+/Ubuntu 19.10+sudo apt-get install fzf
Condaconda install -c conda-forge fzf
DNFFedorasudo dnf install fzf
NixNixOS, etc.nix-env -iA nixpkgs.fzf
PacmanArch Linuxsudo pacman -S fzf
pkgFreeBSDpkg install fzf
pkginNetBSDpkgin install fzf
pkg_addOpenBSDpkg_add fzf
XBPSVoid Linuxsudo xbps-install -S fzf
ZypperopenSUSEsudo 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