⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 极客之家 「丛林」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言都将得到认真回复。甚至不知道如何读源码也可以请教噢。
  4. 新的源码解析文章实时收到通知。每周更新一篇左右。
  5. 认真的源码交流微信群。

作为一名命令行重度用户,我常常需要在海量的文件、历史命令和进程中进行搜索。传统的find、grep虽然强大,但往往需要记住复杂的参数,而且缺乏交互性。

今天给大家推荐一款能让你在终端中快速筛选、查找、执行命令的神器。无论是 Linux、macOS 还是 Windows(通过 WSL)用户,fzf 都能让我们的命令行效率翻倍!

简介

fzf(fuzzy finder的缩写)是一个用Go编写的通用命令行模糊查找器。它是一个交互式Unix过滤器,可以与任何列表一起使用——无论是文件、命令历史、进程、主机名、书签还是git提交。

核心功能

  • 实时模糊搜索
  • 支持命令行交互
  • 可与 Git、Docker、Zsh、Tmux 等工具集成
  • 跨平台支持(Linux、macOS、Windows)

优势特点

  • 极其快速: 即使在处理大量数据时也能保持流畅
  • 功能全面: 拥有最全面的功能集
  • 布局灵活: 支持多种布局和显示方式
  • 开箱即用: 提供Vim/Neovim插件、按键绑定和模糊自动补全
  • 便携无依赖: 单个可执行文件即可运行

安装部署

安装fzf非常简单,有以下几种方法:

使用Homebrew安装(macOS):

brew install fzf
# 安装 安装实用的按键绑定和模糊补全:
$(brew --prefix)/opt/fzf/install

使用Linux包管理器:

# Debian/Ubuntu
sudo apt install fzf

# Red Hat/CentOS/Fedora
sudo dnf install fzf

# Arch Linux
sudo pacman -S fzf

使用git安装:

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

在Windows上:

# 使用 使用Chocolatey
choco install fzf

需要注意的是,Windows上的某些组件可能有局限,可以考虑在WSL(Windows Subsystem for Linux)中使用fzf以获得完整体验。

使用教程

文件搜索

最基本的用法是直接在终端中输入:

fzf

这会递归搜索当前目录下的所有文件(隐藏文件除外),并通过交互式界面让你选择。

你也可以通过管道将任何命令的输出传递给fzf:

find * -type f | fzf

选中文件后,fzf会将完整路径输出到标准输出,因此可以与其他命令结合使用:

# 用vim打开选择的文件
vim $(fzf)

# 或者使用更安全的方式,处理带空格的文件名
vim "$(fzf)"

历史命令搜索

这是fzf最zf最实用的功能之一!按下Ctrl + R即可搜索命令历史,通过模糊匹配快速找到过去执行的命令。

进程查询

ps aux | fzf

目录导航

# 快速切换到所选目录
cd $(find * -type d | fzf)

多选模式

使用-m或--multi选项启用多选功能,然后用Tab键选择多个项目:

fzf -m

这在需要批量操作文件时格外有用,比如一次删除多个文件或同时打开多个文件。

预览功能

fzf可以显示文件的预览内容,这在选择文件时极为便利:

fzf --preview="cat {}"

对于代码文件,可以结合bat等工具获得更好的视觉效果更好的视觉效果:

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

自定义布局和显示

fzf提供了灵活的显示选项:

# 在屏幕中间显示,占40%高度,反向列表
fzf --height 40% --layout=reverse

# 在光标下方显示,而非全屏
fzf --height=~70%

与环境变量配合

通过设置环境变量,可以定制fzf的默认行为:

# 设置默认命令
export FZF_DEFAULT_COMMAND='find . -type f'

# 设置默认选项
export FZF_DEFAULT_OPTS="--layout=reverse --border --cycle"

开源地址

https://github.com/junegunn/fzf

文章目录
  1. 1. 简介
  2. 2. 核心功能
  3. 3. 优势特点
  4. 4. 安装部署
  5. 5. 使用教程
    1. 5.1. 文件搜索
    2. 5.2. 历史命令搜索
    3. 5.3. 进程查询
    4. 5.4. 目录导航
    5. 5.5. 多选模式
    6. 5.6. 预览功能
    7. 5.7. 自定义布局和显示
    8. 5.8. 与环境变量配合
  6. 6. 开源地址