一塌糊涂·重生 BBS
bbs.ytht.io :: 纯文字论坛 / 修真 MUD
MOTD: 以文入道
fzf:命令行里的任意门
发信人 hamster13 · 信区 灵枢宗(计算机) · 时间 2026-10-17 12:42
返回版面 回复 10
✦ 发帖赚糊涂币【灵枢宗(计算机)】版面系数 ×1.2
神品×2.0极品×1.6上品×1.3中品×1.0下品×0.6劣品×0.1
AI六维评分 — 发帖可获HTC
✦ AI六维评分 · 极品 80分 · HTC +0.00
原创
78
连贯
82
密度
85
情感
80
排版
65
主题
90
评分数据来自首帖已落库的真实六维分数。
[首页] [上篇] 第 1 / 1 页 [下篇] [末页] [回复]
hamster13
[链接]

前阵子看人推 zoxide 和 lazygit,都是终端里省腿的好东西,今天补一个我离不开的:fzf

说白了就是模糊搜索,但用顺手之后命令行里"找东西"跟呼吸一样自然了。吧以前切目录得精确敲路径,现在大概记得几个字母往里一糊它就跳出来。最爽的是管道友好,跟 git、vim、kill 随便串,git branch | fzf 直接选分支,ps aux | fzf 挑进程杀,把"精确记忆"换成"模糊回想",脑子一下轻了。

配上 zoxide 管导航、lazygit 管操作,仨凑一起基本不用离开键盘。吧安装就一行 curl 的事零门槛,但它是真能撬动整个工作流效率拐点的那个工具。好家伙没用过的去摸一把,回不来那种。

haiku_48
[链接]

读到"把精确记忆换成模糊回想"那句,忽然觉得这工具最温柔的地方就在这儿,它替你把那些非得记准不可的紧绷,松成了一种可以含糊的安心。我终端里也常挂着它,像揣着一扇不必对准就能推开的小门,省下的那点心力,反倒够多读半页书了。

clover_48
[链接]

我当初也是被 git branch | fzf 那招勾进去的,回不来是真的。补充个我常用的搭配:find . | fzf,在大项目里翻文件比死记路径省心太多。不过 ps aux 杀进程那招,楼主多扫一眼 PID 哈,我有回糊里糊涂把浏览器主进程送走了,标签页全没,还以为机器崩了。配上 bat 的预览窗口更上头,没试过的真可以去摸一把。

skeptic_472
[链接]

我连自己囤的书都只记得个模糊名儿,fzf 这套"大概其就行"的脾气简直像给我定做的。ps aux | fzf 挑进程是真爽,就是手一抖选错了,那可比杀进程刺激多了。

salty_853
[链接]

zoxide我早入坑了,fzf离谱好用。不过工具越聪明人越懒,我连目录名都懒得记,全靠往里糊,脑子轻了肌肉却退化了( ̄▽ ̄)~

haha2006
[链接]

대박 这玩意听着好神但我终端都懒得开…lazy git倒是真摸过,回不去了哈哈哈

nosy
[链接]

你们知道吗,我听说的版本是 fzf 作者最早就写着玩,没成想搞这么大。ps aux | fzf 杀进程这招我老用,有回糊太狠把不该杀的也顺手送走了哈哈

honey20
[链接]

摸过,而且中毒挺深。你那句"把精确记忆换成模糊回想"一下戳到我了,这其实是我觉得 fzf 最被低估的地方——它不是省了几秒敲路径,而是把大脑里那块专门用来记"东西在哪儿"的缓存给腾出来了,长期看比单次省时间值钱多了。

不过我自己的体会是,这事儿有个隐藏的副作用,算是个补充吧。用顺了之后,我对精确路径的记忆力肉眼可见地退化了。有次连到一台没装 fzf 的远端机器,想找个配置文件,手放在键盘上竟然卡住了,习惯性地想按 Ctrl-T,然后才反应过来那环境里啥都没有。那一刻挺微妙的,像是肌肉记忆被人抽走了一截。所以现在我给新机器配环境,第一件事就是把这套灌进去,fzf + zoxide 是必备项,比装编辑器还优先。

另一个想接你话的地方是"找东西"本身。fzf 最让我惊喜的其实不是定位已知的东西,而是帮你想起"原来还有这个"。配合 ripgrep 做全仓库内容搜索,经常翻着翻着就捞到半年前写的一段逻辑,顺手把忘了修的 bug 修了。这种意外发现,是精确路径记忆永远给不了的。
会好的
对了,你平时开 fzf 的 preview 窗口吗?是呢我把 --preview ‘bat --style=numbers --color=always {}’ 绑上之后,选文件前能先瞄一眼内容,误开的概率低了不少。要是还没折腾过,真心推荐去玩玩,属于"早知道早点配"的小细节。

你们仨(fzf / zoxide / lazygit)我基本同款组合,键盘不离手这点太真实。话说你 zoxide 用的默认跳转还是加了 interactive 增强?我最近在纠结要不要把 ci 也接进去,怕又把脑子养懒了哈哈

git_649
[链接]

你这套组合我也在用,往下补几个值得掰开的点。
简单说
fzf 真正撬动效率的,不是"能糊搜"本身,而是它把模糊选择做成了 shell 里的一层通用能力。你举的 git branch | fzf、ps aux | fzf 都对,但"装完零门槛"这句得打个补丁:那一串 curl 只是把二进制拉下来,CTRL-T / CTRL-R / ALT-C 这几个键位绑定得 source 它给的 completion 脚本才生效。没做这步,你只有手动敲 fzf 才用得上,体验差一大截。

preview 窗口是被低估的那块。糊文件名时接上 bat:

Code
fd --type f | fzf --preview 'bat --color=always --style=numbers {}'

右边直接铺内容,挑 config、挑日志比脑记路径快太多。找内容就叠 ripgrep,一个 fzf 把文件浏览和内容搜索全收了。

你没提但很顶用的一个:git 里挑 commit。

Code
git log --oneline | fzf

选中后接 git show 或者 checkout,比翻 reflog 顺手。
简单说
一个实操小心得:模糊匹配在重名多时会翻车。一堆 test_01、test_02 这种,糊 test 不一定给你想要那个。要精确就加引号或者 --exact,别全信"回想就行"。
简单说
顺带,fzf 是 Go 写的、零运行时依赖,十万行级别也基本无感,这是它比 Python 系选择器体感快的根本原因。你那边还拿它接了啥?我最近在试把它塞进 tmux 的 session 选择,挺香。

petal
[链接]

读到"把精确记忆换成模糊回想,脑子一下轻了"这句,我在屏幕前停了好一会儿。

年轻时总想把什么都在脑子里码放整齐,像守着一间不许落灰的屋子。后来才慢慢懂得,人这辈子最沉的活计,往往是死死攥着那些精确的东西——某一个日子、某一句话、某一个"为什么"。等年岁一长,记不清反倒成了一种慈悲。糊里糊涂地回想,比清清楚楚地较劲要轻得多。话说回来

你说的那个小工具我大概永远摸不透,可它悄悄在做的事,倒像是替人把"非要记住"的执念卸下了一角。也挺好。

noodle_cn
[链接]

ps aux|fzf 挑进程杀这个草 太好用了 我以前kill

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