fzf(交互式命令行模糊查找器)的快速介绍

[ad_1]

我在 Linux Uprising 的文章中多次提到 fzf,但我从未真正写过它。 fzf 长期以来一直是我工作流程的一部分,它是一个您应该了解的了不起的工具。

我意识到你们中的许多人已经在使用 fzf,但对于那些没有使用的人,这篇文章是为你准备的。 这只是对 fzf 的简单介绍,没有过多赘述。 fzf 项目页面和 wiki 提供了有关 fzf、其用法以及许多示例的大量信息,因此请查看这些以获取更多信息。

fzf 是一个用 Go 编写的快速交互式命令行模糊查找器。 该工具适用于 Linux、macOS、*BSD 和 Windows。

它可以通过解析命令的输出,使用 Shell 扩展(包括 Bash 和 Zsh 的模糊自动完成,以及诸如 CTRL-T, CTRL-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 颜色代码的处理等等。

几个简单的例子展示了 fzf 命令行模糊查找器可以做什么

模糊搜索您的 shell 历史记录 (CTRL-R):

文件和目录的模糊补全 (这是通过以触发序列结束命令来触发的,默认情况下是 **,然后按 TAB):

cd **<TAB>

同理,fzf 也可以自动补全主机名(例如 ssh **<TAB>),以及环境变量和别名(例如 export **<TAB>)。 它还可以自动完成进程 ID,在这种情况下没有触发序列,例如 kill -9 <TAB>.

在当前目录(和子目录)中查找文件,并在选择文件时(通过按 Enter 键),文件将通过您的默认命令行编辑器打开:

editor $(find * -type f | fzf)

将其与其他命令结合使用,可创建带有模糊搜索和预览窗格的酷炫交互式控制台 UI。 例如 以下命令 (via) 使用 fzf 和 apt 列出所有可用的软件包,允许您通过按 来安装软件包 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

对于本文顶部的屏幕截图,我正在使用以下命令(它需要 bat,一个 cat 用 Rust 编写的克隆,包括语法高亮等):

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

有关更高级的示例,请查看 fzf wiki。

我还在 Linux Uprising 上写过一些使用 fzf 模糊查找器的命令行工具/脚本:

  • forgit:由 fzf Fuzzy Finder 提供支持的带有预览的交互式 Git 命令
  • ytfzf – 从终端搜索(带缩略图)和播放 YouTube 视频
  • z.lua – 一种更快速的目录更改方式(cd 命令在您使用时学习)

安装 fzf 模糊查找器

fzf 可用于 Linux(包括各种 ARM 版本,因此它适用于例如 Raspberry Pi)、macOS、*BSD 和 Windows。

在 Linux 上,可以从 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) 给他们所有人。

就是这样。 现在你所要做的就是重新启动你的 shell 或重新加载配置文件:

  • 重击:
source ~/.bashrc
  • Zsh:
source ~/.zshrc
  • 鱼:
fzf_key_bindings

使用此安装方法,如果您以后要 更新它 (完成和二进制),使用:

cd ~/.fzf

git pull

./install

也更容易 卸载它 (这会撤消对 ~/.bashrc 或者 ~/.zshrc, 并从中删除 Fish 键绑定 ~/.config; 它不会删除 ~/.fzf 目录):

cd ~/.fzf

./uninstall

[ad_2]

Related Posts