模糊搜索工具fzf的安装和使用

模糊搜索工具fzf的安装和使用

fzf简介

fzf使用golang编写,让你通过输入模糊的关键词就可以定位文件或文件夹,当你的思维也习惯了模糊匹配后,在工作中可以大幅提高你的工作效率。

加入你记得文件名中包含yo,fi,na,那你只需要把所有文件送给fzf,然后在窗口输入yo fi na就可以了,无论是you_file_name,还是you_name_file都可以匹配上。

安装

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

升级

cd ~/.fzf && git pull && ./install

简单使用

find * -type f | fzf > selected

fzf会从STDIN 读入数据,然后将结果输出到STDOUT,上面命令从find徳搜索结果中读入,输出到selected中。

fzf快捷键

在finder(输出交换窗口)里,

  • Ctrl-J/Ctrl-K/Ctrl-N/Ctrlk-N可以用来将光标上下移动
  • Enter键用来选中条目, Ctrl-C/Ctrl-G/Esc用来退出
  • 在多选模式下(-m), TAB和Shift-TAB用来多选
  • Mouse: 上下滚动, 选中, 双击; Shift-click或shift-scoll用于多选模式

布局

#fzf默认全屏模式,你可以定制高度
vim $(fzf --height 40%)
#你可以通过$FZF_DEFAULT_OPTS来设定默认值
export FZF_DEFAULT_OPTS='--height 40% --reverse --border'

搜索语法

fzf默认会以“extened-search"模式启动, 这种模式下你可以输入多个以空格分隔的搜索关键词, 如^music .mp3$, sbtrkt !fire.

Token Match Type Description
sbtrkt fuzzy-match 匹配sbtrkt
^music prefix-exact-match 以music开头
.mp3$ suffix-exact-match 以.mp结尾
‘wild exact-match(quoted) J精确包含wild
!file inverse-exact-match 不包含fire
!.file$ inverse-suffix-match 不以.mp3结尾

如果你不想用fuzzy match, 可以用fzf -e做精确匹配,|可以做or匹配, 比如:

^core go$|rb$|py$

表示以core开头,以go或rb或py结尾。

天上我才必有用,千金散尽还复来!
原文地址:https://www.cnblogs.com/lutaishi/p/13436206.html