53.9k star 提升命令行效率的模糊搜索神器--fzf

2024-09-15 13:42:46 浏览数 (1)

fzf简介

作为Linux/Unix命令行的重度用户,你是否还在使用繁琐的管道命令与复杂选项组合来过滤文件和数据?其实我们有一个更简单高效的选择 - fzf。

fzf是一个开源的通用模糊搜索工具,可以大幅度提升命令行的使用体验。它的查询运行速度极快,支持预览选中的文件内容,还能与各种命令行工具无缝集成,强大的功能很容易让人上瘾。

本文将介绍如何安装fzf,以及通过实际案例展示它的强大功能和灵活用法,帮助你成为fzf高手。后面还会介绍一些进阶技巧,让你掌握自定义fzf的诀窍。让我们开始吧!

安装fzf

在大多数Linux发行版上,可以直接通过包管理器安装fzf:

代码语言:bash复制
sudo apt install fzf # Ubuntu/Debian
sudo pacman -S fzf # Arch

除此之外,也可以通过GitHub源码编译安装。此外还需要设置一些环境变量来启用fzf的默认快捷键绑定和补全,在.bashrc或.zshrc中添加:

代码语言:bash复制
source /usr/share/doc/fzf/examples/key-bindings.bash 
source /usr/share/doc/fzf/examples/completion.bash

这样fzf就可以在控制台直接使用了。非常简单方便!

使用实践介绍

文件搜索

利用Linux强大的搜索工具结合fzf,可以实现快速文件搜索。例如使用ag搜索代码:

代码语言:bash复制
ag -l | fzf

也可以搜索文件内容:

代码语言:bash复制
ag -g "" | fzf --preview "bat --color=always {}

进程查询

显示进程后通过fzf过滤:

代码语言:bash复制
ps aux | fzf

历史命令搜索

通过rzsh history启用历史记录,然后:

代码语言:bash复制
history | fzf

即可快速Filtered历史命令。其他模糊补全例如hostnames, variables等用法类似,大大提升效率。

目录导航

通过fzf目录模糊补全快速导航:

代码语言:bash复制
cd **<fzf>

文件多选

fzf支持shift tab进行多选:

代码语言:bash复制
fzf -m

可同时打开多个文件。

除了上述例子,fzf几乎可与任何命令行工具集成。类似的用法有:

  • git提交日志中搜索(git log | fzf)
  • vim插件中文件搜索(:Files | fzf)
  • 设置zsh模糊补全等

功能强大的fzf能大大提高这些工具的易用性。

进阶使用技巧

fzf高度定制化,可以设置外观主题、自定义快捷键等。

例如设置类似Sublime的配色:

代码语言:bash复制
export FZF_DEFAULT_OPTS='--color=bw --inline-info'

设置CTRL-A全选:

代码语言:bash复制
export FZF_CTRL_A=" [A]"

详细的自定义选项可以在man手册或GitHub文档中找到。

此外,还有很多插件扩展fzf功能,例如支持git状态显示的fzf-git。可以根据需要安装所需插件。

关于fzf介绍的总结

fzf是一个效率提升神器,能大大节省命令行用户的时间和精力。强大的模糊搜索能力可以无缝集成到各种场景中。

上手非常简单,而且高度可定制化。如果你每天都要在终端与数据打交道,就应该试一试fzf!它可能会成为你的终端生活不可或缺的一部分。

0 人点赞