fzf(交互式命令行模糊查找器)简介

我在有关Linux起义的文章中多次提到fzf,但是我还没有真正写过有关fzf的文章。 长期以来,fzf一直是我工作流程的一部分,并且是一个很好的了解工具。

我知道很多人已经在使用fzf,但是对于那些没有使用fzf的人,本文适合您。这是fzf的简要介绍,并且不会赘述。 fzf 项目页面维基 请查看它们以获取更多信息,因为它提供了有关fzf,其用法和许多示例的广泛信息。

fzf 用Go语言编写的快速交互式命令行模糊查找器。该工具可用于Linux,macOS,* BSD和Windows。

可以手动使用它,也可以通过使用shell扩展(包括Bash和Zsh中的模糊自动完成,以及诸如以下的键绑定)来解析命令的输出来编写脚本: CTRL-TCTRL-RALT-C (适用于Bash,Zsh,Fish),作为Vim / Neovim插件。 在Tmux窗格中也有一个Tmux脚本来启动fzf。

这些fzf命令行键绑定的功能是:

  • CTRL-R:搜索命令历史记录。推 Enter 将所选命令从历史记录粘贴到命令行。按将排序相关性切换为按时间顺序 CTRL-R 再次(默认情况下,排序是根据相关性完成的)
  • CTRL-T:显示当前目录(和子目录)中文件和文件夹的列表。推 Enter 将所选文件/文件夹的路径粘贴到命令行
  • ALT-C:显示当前目录中的子目录列表。推 Entercd 在所选目录中

默认情况下,搜索语法允许您输入多个用空格分隔的搜索词(fzf在高级搜索模式下启动)。如果要查找完全匹配的内容,请在搜索字词前添加一个引号(例如, 'search-term)。 fzf搜索语法的详细信息 这里..

交互式fzf查找程序默认情况下使用以下按键绑定: / (或者 CTRL-J / CTRL-K 或者 CTRL-N / CTRL-P)上下移动光标 Enter 选择项目的键,以及 CTRL-C (或者 CTRL-G / ESC) 出去。您还可以在使用时选择多个项目。 -m 命令行参数。在这种情况下,您可以用来选择多个项目。 TABShift-TAB..

fzf还具有鼠标支持,因此您可以单击,滚动,双击以及更多项。在多选模式下,您可以使用: Shift-clickShift-scroll..

fzf的其他功能还包括显示预览窗格的功能(--preview=COMMAND),设置其高度(例如: --height 50%),添加边框(--border),使用自定义键绑定,使用不同的布局(例如反向布局),启用ANSI颜色代码处理等等。

模糊搜索外壳历史记录(CTRL-R):

fzfctrl -r动画GIF示例

文件和目录的模糊完成(通过以触发顺序终止命令来触发。默认情况下, **,然后按 TAB):

cd **<TAB>

fzf cd ** <TAB>GIF动画示例“边框=“ 0”数据原始高度=“ 500”数据原始宽度=“ 820” src =“ https://1.bp.blogspot.com/-eq-WxerSYwM/YEoXipORw3I/ AAAAAAAAFV8 / Sq54v3HQqtM5d06oFJSKiSFhtR7gWwXJgCLcBGAsYHQ / s16000 / fzf-cd-tab.gif“标题=” fzf cd ** <TAB>GIF动画示例”></a></p><p>同样,fzf也可以自动完成主机名(例如: <code>ssh **<TAB></code>),以及环境变量和别名(例如 <code>export **<TAB></code>)。您也可以自动完成进程ID。在这种情况下,没有触发序列。 <code>kill -9 <TAB></code>..</p><p>在当前目录(和子目录)中搜索文件并选择文件时( <code>Enter</code> 键),通过默认的命令行编辑器打开文件:</p></p><pre class=editor $(find * -type f | fzf)

fzf打开文件动画GIF示例

与其他命令结合使用,创建一个带有模糊搜索和预览窗格的凉爽的交互式控制台UI。示例:以下命令(通过)使用fzf和apt列出所有可用的软件包,然后按ther允许安装它们。 Enter 钥匙。fzf在哪里 --preview 显示预览窗格的选项(在这种情况下,将显示所选DEB包的详细信息):

apt-cache search '' | sort | cut --delimiter ' ' --fields 1 | fzf --multi --cycle --reverse --preview 'apt-cache show {1}' | xargs -r sudo apt install -y

fzf apt install with details动画GIF示例

本文顶部的屏幕截图使用以下命令( 蝙蝠cat 带有语法高亮显示的Rust编写的克隆等):

fzf --preview 'bat --style=numbers --color=always --line-range :500 {}'

有关更高级的示例, fzf Wiki..

我还写了有关Linux Uprising和一些利用fzf Fuzzy finder的命令行工具/脚本的文章。

  • forgit:使用fzf Fuzzy Finder进行预览的交互式Git命令
  • ytfzf-从终端搜索(使用缩略图)并播放YouTube视频
  • z.lua-如何更快地更改目录(使用cd命令学习)

安装fzf模糊查找器

fzf可以在Linux(包括各种ARM版本,因此可以在Raspberry Pi等上使用),macOS,* BSD和Windows上使用。

在Linux上,可以从以下位置安装fzf。 资料库 Debian9 +,Ubuntu 19.10 +,Fedora,Arch Linux,openSUSE等

但是,我个人更喜欢使用安装脚本进行安装(该脚本会自动下载系统二进制文件,而无需从源代码进行构建)。这是因为所有步骤都已设置好,您需要做的就是获取Shell配置文件。更新到新的fzf版本(发行频率很高)也很容易。

要使用安装脚本安装fzf,请确保: git 安装后,使用:

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

~/.fzf/install

安装脚本会询问有关启用哪些功能的一些问题。您可能要回答“是”(y)给所有人。

而已。现在,您要做的就是重新启动外壳程序或重新加载配置文件:

  • 重击:
source ~/.bashrc

  • Zsh:
source ~/.zshrc

  • 鱼:
fzf_key_bindings

如果您使用此安装方法,并且想要以后进行更新(包括完整版本和二进制文件),请使用:

cd ~/.fzf

git pull

./install

卸载也很容易(这将撤消所做的更改) ~/.bashrc 或者 ~/.zshrc,然后从中删除Fish键绑定 ~/.config不会被删除 ~/.fzf 目录):

cd ~/.fzf

./uninstall
Sidebar