fzf:让你的命令行会「模糊查找」

如果你还在用 ls 一层层翻目录、用 Ctrl+R 翻半天历史命令,那 fzf 会彻底改变你的工作方式。它是一个通用的命令行模糊查找器:给任意列表,它都能让你交互式地筛选,敲几个字母就定位到目标。

安装

# macOS
brew install fzf

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

三个高频用法

1. 模糊找文件

vim $(fzf)        # 弹出列表,选哪个文件就打开哪个

2. 搜命令历史

在 shell 里按 Ctrl+R,输入关键字,历史命令逐条过滤——比默认的 Ctrl+R 强十倍。

3. 管道任意内容

# 列出进程,模糊选中后杀掉
ps aux | fzf | awk '{print $2}' | xargs kill

fzf 能接在任何命令后面,因为它是「消费 stdin、产出 stdout」的纯文本工具。

配合 ripgrep 起飞

把 fzf 的预览和搜索接到 ripgrep,能在项目里秒级定位文件并预览内容:

export FZF_DEFAULT_COMMAND='rg --files --hidden --glob "!.git"'
export FZF_CTRL_T_OPTS='--preview "bat --style=numbers --color=always {}"'

为什么值得装

场景没有 fzf有 fzf
找文件记路径 / 反复 ls敲 2 个字母选中
翻历史凭记忆回滚模糊搜索定位
git 操作抄 commit hash`git log

fzf 小而快(Go 写就,毫秒级响应),却能把命令行里「找东西」这件最累的事,变成一种近乎本能的肌肉记忆。装一次,就回不去了。