Fuzzy finder(fzf+vim) 使用全指南

简介

Fuzzy finder 是一款使用 GO 语言编写的交互式的 Unix 命令行工具。可以用来查找任何 列表 内容,文件、Git 分支、进程等。所有的命令行工具可以生成列表输出的都可以再通过管道 pipe 到 fzf 上进行搜索和查找

优点

  • GO 语言编写,编译完生成可执行文件没有任何依赖
  • 搜索/查找速度飞快
  • 功能全面/可视化界面体验很棒
  • 周边插件丰富 (vim, tmux, fuzzy auto-completion)

安装

以 macOS 为例子,直接使用 homebrew 安装即可

brew install fzf
# 如果要使用内置的快捷键绑定和命令行自动完成功能的话可以按需安装
$(brew --prefix)/opt/fzf/install

使用

命令行下执行 fzf 即可展示当前目录下所有文件列表,可以用键盘上下键或者鼠标点出来选择
Fuzzy finder(fzf+vim) 使用全指南

或许你会觉得这个查找提示看起来挺漂亮的,但是并没有什么卵用,因为查找出来就没有然后了。其实这也是 Fuzzy finder 最核心的地方,他只是一个通用的下拉查找功能,自己本身并不关心你用它来做什么,通常我们需要组合使用才会有很好的效果

用 vim 打开文件

比如我们用 vim 组合 fzf 来查找并打开目录下的文件:

vim $(fzf)

Fuzzy finder(fzf+vim) 使用全指南

切换当前工作目录

再比如进入到某个文件夹下面,使用 fzf 的过滤选择真是太方便了

cd $(find * -type d | fzf)

这是个组合 (cd+find+fzf) 命令,完成切换到任意子目录的功能。可以看出来当 fzf 和其它命令组合使用时就能使得一些操作更方便:

  1. 使用 find 命令找出所有的子目录
  2. 把子目录列表 pipe 到 fzf 上进行选择
  3. 再把结果以子命令的形式传给 cd

Fuzzy finder(fzf+vim) 使用全指南

切换 git 分支

git checkout $(git branch -r | fzf)

Fuzzy finder(fzf+vim) 使用全指南

不过这样组合使用命令的实在太长了,如果你不使用自动补全的话巧起来很累的。建议把常用的 alias 放在 .zshrc 中管理嘛

shell 命令行补全

fzf 默认使用 ** 来补全 shell 命令,比起默认的 tab 补全,fzf 补全不知道高到哪里去了。cd, vim, kill, ssh, export... 统统都能补全,好用哭了

vim

相关推荐