今天无意中尝试了fzf,才发现这个工具的威力无穷,毕竟是非常好的工具,第一次都把它的优点都释放出来也不现实,先熟悉一下吧,后面在实战中再不断地学习总结。
它是什么:
Fuzzy finder 是一款使用 GO 语言编写的交互式的 Unix 命令行工具。可以用来查找任何 列表 内容,文件、Git 分支、进程等。所有的命令行工具可以生成列表输出的都可以再通过管道 pipe 到 fzf 上进行搜索和查找
它的优势:
- GO 语言编写,编译完生成可执行文件没有任何依赖
- 搜索/查找速度飞快
- 功能全面/可视化界面体验很棒
- 周边插件丰富 (vim, tmux, fuzzy auto-completion)
安装方法:
* mac安装:
brew install fzf # 如果要使用内置的快捷键绑定和命令行自动完成功能的话可以按需安装 $(brew --prefix)/opt/fzf/install
* ubuntu安装:
wget https://github.com/changyuheng/zsh-interactive-cd/blob/master/zsh-interactive-cd.plugin.zsh cp zsh-interactive-cd.plugin.zsh ~/.fzf/shell echo 'source ~/.fzf/shell/zsh-interactive-cd.plugin.zsh' >> ~/.zshrc
使用指南:
* 打开方法
命令行下执行 fzf
即可展示当前目录下所有文件列表,可以用键盘上下键或者鼠标点出来选择
* 和vim组合使用:
vim $(fzf)
* 切换目录:
cd $(find * -type d | fzf)
* 切换git分之:
git checkout $(git branch -r | fzf)
* shell命令补全:
fzf 默认使用 **
来补全 shell 命令,比起默认的 tab 补全,fzf 补全不知道高到哪里去了。cd, vim, kill, ssh, export… 统统都能补全,好用哭
先介绍到这里吧,一次太多也学习不完,后面再继续深入的分析。
参考文档:
1 https://keelii.com/2018/08/12/fuzzy-finder-full-guide/
2 https://github.com/junegunn/fzf-bin/releases