fzf是一款使用 GO 语言编写的交互式的 Unix 命令行工具。
可以用来查找任何
列表内容、文件、历史命令、 本机绑定的host、 进程、 Git 分支、进程
等。所有的命令行工具可以生成列表输出的都可以再通过管道 pipe 到 fzf 上进行搜索和查找
项目地址:https://github.com/junegunn/fzf
安装
我们通过包管理工具可以方便的安装它
macOS - brew下载安装
1
2
3brew install fzf
安装 键盘映射和模糊提示
(brew --prefix)/opt/fzf/installdebian系列 -
apt install fzf
windows - 从 release 下载后安装
使用 git 下载安装
1
2
3git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
安装
~/.fzf/install
更新
- git:
cd ~/.fzf && git pull && ./install
- brew:
brew update; brew reinstall fzf
使用
CTRL-T
查找目录下条目
使用 CTRL-T
查找粘贴目录下的文件或目录到命令行
CTRL-R
查找历史命令
使用 CTRL-R
查找并粘贴选中的历史命令到命令行,可以通过再次按下 CTRL-R
切换时间排序和相关性排序
快捷键
在输出交换窗口里
- Ctrl-J/Ctrl-K/Ctrl-N/Ctrlk-N可以用来将光标上下移动
- Enter键用来选中条目, Ctrl-C/Ctrl-G/Esc用来退出
- 在多选模式下(-m), TAB和Shift-TAB用来多选
- Mouse: 上下滚动, 选中, 双击; Shift-click或shift-scoll用于多选模式
搜索语法
fzf默认会以“extened-search”模式启动, 这种模式下你可以输入多个以空格分隔的搜索关键词, 如^music .mp3$
, sbtrkt !fire
.
Token | Match type | Description |
---|---|---|
sbtrkt | fuzzy-match | 匹配sbtrkt |
^music | prefix-exact-match | 以music开头 |
.mp3^ | suffix-exact-match | 以.mp3结尾 |
‘wild | exact-match(quoted) | 精确包含wild |
!fire | inverse-exact-match | 不包含fire |
!.mp3$ | inverse-suffix-exact-match | 不以.mp3结尾 |
如果你不想用fuzzy match, 可以用fzf -e
做精确匹配
符号”|”可以做or匹配, 比如
1 | 表示以core开头,以go或rb或py结尾的 |
预览窗口
通过 fzf --preview 'cat {}'
可以 动态的预览文本,再也不用一个个 cat
了
更多
更多优秀内容,可以通过 关注微信公众号【极客收藏夹】 获取哦!