序言

Fzf是一款小巧,超快,通用,跨平台的命令行模糊查找器,可帮助您在Linux和Windows操作系统中快速搜索和打开文件。 它是可移植的,没有依赖性,并且具有灵活的布局,支持Vim / Neovim插件,键绑定和模糊自动完成。

以下GIF显示了它的工作原理。

要安装Fzf ,您需要将fzf的Github存储库git克隆到任何目录并运行安装脚本,如Linux发行版所示。

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

1
2

运行脚本后,系统将提示您启用模糊自动完成,键绑定并更新shell配置文件。 对问题回答y (对于 ),如以下屏幕截图所示。

在Linux中安装Fzf

Fedora 26及更高版本和Arch Linux上 ,您可以通过包管理器安装它,如图所示。

$ sudo dnf install fzf #Fedora 26+ $ sudo pacman -S fzf #Arch Linux

1
2

现在您已经安装了fzf ,您可以开始使用它了。 当你运行fzf时 ,它会打开一个交互式查找程序; 从stdin读取文件列表,并将所选项写入stdout

只需在提示中键入要查找的文件的名称。 找到它后,单击enter,文件的相对路径将打印到stdout

$ fzf

Fzf提示

或者,您可以将要搜索的文件的相对路径保存到命名文件,并使用cat命令bcat等实用程序查看文件的内容。

$ fzf >file
$ cat file
OR
$ bat file

1
2
3
4
5

例如,您也可以将它与find命令结合使用。

$ find ./bin/  -type f | fzf >file
$ cat file

1
2
3

如何在Bash和Zsh中使用模糊完成

要触发文件和目录的模糊完成,请将**字符添加为触发序列。

$ cat **<Tab>

1
2

自动完成文件名

您可以在命令行中使用环境变量时使用此功能。

$ unset **<Tab> $ unalias **<Tab> $ export  **<Tab>

1
2

在Linux中自动完成Env变量

这同样适用于sshtelnet命令,用于自动完成从**/ etc / hosts〜/ .ssh / config**读取的主机名。

$ ssh **<Tab>

1
2

自动完成主机名

它也适用于kill命令 ,但没有显示的触发序列。

$ kill -9 <Tab>

杀死命令的自动完成

如何启用fzf作为Vim插件

要将fzf作为vim插件启用,请在Vim配置文件中附加以下行。

set rtp+=~/.fzf

fzf正在积极开发中,可以使用以下命令轻松升级到最新版本。

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

1
2

要查看完整的使用选项列表,请运行man fzf或查看其Github存储库: https//github.com/junegunn/fzf

另请阅读Silver Searcher - 程序员的代码搜索工具

Fzf是一款超快速且通用的模糊查找器,用于在Linux中快速搜索文件。 它有许多用例,例如,您可以为shell配置自定义用法。 如果您有任何问题或意见,请通过下面的反馈表联系我们。