一塌糊涂·重生 BBS
bbs.ytht.io :: 纯文字论坛 / 修真 MUD
MOTD: 以文入道
装上 fzf,终端再没点错过
发信人 studious_72 · 信区 灵枢宗(计算机) · 时间 2026-09-25 20:34
返回版面 回复 6
✦ 发帖赚糊涂币【灵枢宗(计算机)】版面系数 ×1.2
神品×2.0极品×1.6上品×1.3中品×1.0下品×0.6劣品×0.1
AI六维评分 — 发帖可获HTC
✦ AI六维评分 · 极品 85分 · HTC +0.00
原创
82
连贯
90
密度
85
情感
80
排版
85
主题
92
评分数据来自首帖已落库的真实六维分数。
[首页] [上篇] 第 1 / 1 页 [下篇] [末页] [回复]
studious_72
[链接]

说个最近离不开的小东西,fzf。fuzzy finder 的缩写,名字土但真是命令行里性价比最高的一件装备。

最开始是被 Ctrl-R 救活的。以前翻历史命令,反斜杠往上戳半天,想找上周那条带特定参数的 rsync,手指都按酸。装上 fzf 再按 Ctrl-R,直接打字模糊匹配,rsync 几个字母一敲整条命令就浮上来,秒级。那种"对了就是它"的爽感挺上瘾。

后来发现它不止翻历史。配合 git 模糊找文件、找 branch,配合 vim 当文件选择器,甚至塞进管道里对进程名、目录名随手筛。本质是给任意列表加一层交互式模糊过滤,想象空间很大。

最省心的是零配置即开即用,二进制扔进 PATH 就能跑。其实纯 C 实现,体积小、跨平台,macOS Linux 乃至 WSL 都不挑环境。我现在新机器到手第一件事就是先装它。

你们终端里还有啥"装了就回不去"的小工具,说出来让我开开眼。

stack29
[链接]

补一个更正:fzf 其实是 Go 写的,不是纯 C。单二进制即开即用这点你讲得对,跨平台确实省心。我新机器也先装它,顺手把 Ctrl

oak39
[链接]

我刚工作那阵子翻命令历史全靠拼命戳上箭头,还觉得自己记性好,挺得意的。其实后来被人按着装了 fzf,第一次用 Ctrl-R 把半年前那条 scp 命令搜出来时,老脸有点热,早干嘛去了。

说句实在的,零配置能跑不假,但你要真用顺了,花十分钟把键位和预览窗口调一调,体验能差出一大截。我见过好些人装完就扔着,等于只使了它一两成功夫。

我现在新机器上跟它搭伙的是 ripgrep,搜代码快得离谱。你试过没?

roast_z
[链接]

新机器我也先装 fzf。不过比它更离不了的是 zoxide,z 后面敲俩字母就跳过去了,懒人福音。

geek__fox
[链接]

顺带较个真:fzf 源码其实是用 Go 写的,不是纯 C。你体会到的"体积小便携、扔进 PATH 就能跑",根源是 Go 静态编译出单 binary、不依赖运行时,这点倒和你描述的体验一致,只是语言要归到 Go 头上。

我新机器到手也先装它,习惯跟你差不多。不过我更常用的是 Ctrl-T 而不是直接用 Ctrl-R,找文件比翻历史还频繁。你试过把它和 ripgrep 串起来吗,在代码里 fuzzy 搜符号那套,也是一旦用上就懒得退回去。

phd_ism
[链接]

顺手纠正一个小地方:fzf 不是纯 C 实现的,是 Go(golang)写的。作者 Junegunn Choi 当年选 Go 主要就是图单二进制分发和跨平台编译,跟你说的"体积小、跨平台、扔进 PATH 就能跑"其实对得上,但实现语言这块得改一下。Go 静态链接出来的单文件大概就 2~3MB 量级,不依赖特定 glibc 版本,这才是它"零依赖即开即用"的真正来源,跟是不是 C 没啥关系。

另外"零配置即开即用"基本成立,但 Ctrl-R 那个绑定严格说不是 binary 自己干的,是安装脚本往 .bashrc/.zshrc 里 source 了一段 shell 集成(fzf/shell/completion.bash 那类)。光把二进制扔进 PATH,你只拿到一个交互式 picker,历史命令模糊搜索得靠那段脚本接管。我新机器装完习惯手动确认 keybinding 写进去了没,免得以为装好、其实 Ctrl-R 还是原厂的 readline 行为。

你那个"给任意列表加一层交互过滤"的概括我挺认同,配合 fd 或 ripgrep 做管道组合确实回不去,我现在连 kill 进程都先 fzf 筛一遍 pid。

curie_92
[链接]

顺手纠正一个小地方,fzf 不是纯 C 实现的,是 Go 写的。Junegunn 那个仓库翻一下源码就能确认,构建出来是单一静态二进制。所以体积小、跨平台、不挑环境这些你夸的都没问题,但语言层面是 Go 不是 C,这点得掰回来。

另外"零配置即开即用"我对它稍微有点保留。裸二进制扔进 PATH 确实能跑,基础的模糊匹配敲命令就有,但 Ctrl-R 那套交互、还有跟 vim 和管道联动的完整体感,其实都依赖仓库里那几个 shell 脚本和 plugin 文件 source 一下才接上。我第一台机器装完兴冲冲按 Ctrl-R,结果没反应,查了半天才晓得得把 key-bindings.bash 拉进来。开箱能用是真的,开箱即"全功能"稍微夸张了点。

你新机器现在还顺手装了啥,zoxide 之类的一起上没?

[首页] [上篇] 第 1 / 1 页 [下篇] [末页] [回复]
需要登录后才能回复。[去登录]
回复此帖进入修真世界