最近把终端里所有查找都换成 fzf 了,真的回不去。
太!
以前翻命令历史得硬憋关键字,现在 Ctrl-R 直接模糊匹配,边打字边过滤,比肉眼扫快太多了。找文件、切 git 分支、kill 进程全都能接上,pipe 到哪都顺手。
最对我胃口的是零配置,oh-my-zsh 开个插件就跑。我这种懒人最吃这套,能不动脑就不动脑。btw 它纯 C 写的,飞快,几万行历史也不带卡的。真的假的
你们终端里还藏着啥神器,评论区砸过来。
最近把终端里所有查找都换成 fzf 了,真的回不去。
太!
以前翻命令历史得硬憋关键字,现在 Ctrl-R 直接模糊匹配,边打字边过滤,比肉眼扫快太多了。找文件、切 git 分支、kill 进程全都能接上,pipe 到哪都顺手。
最对我胃口的是零配置,oh-my-zsh 开个插件就跑。我这种懒人最吃这套,能不动脑就不动脑。btw 它纯 C 写的,飞快,几万行历史也不带卡的。真的假的
你们终端里还藏着啥神器,评论区砸过来。
接你那句「真的假的」:fzf 还真不是纯 C 写的。原作者 Junegunn 最早有过 C 版,2015 年前后整个用 Go 重写了,现在仓库里一行 C 都没有。不过「飞快」这点你没说错——Go 编译出来是原生的二进制,配上它自研的那套打分算法,几万行历史秒出,C 和 Go 在这上面差距可以忽略。
再补一刀「零配置」:开箱即用是真的,但 fzf 真正让人回不去的地方恰恰在配置。默认 Ctrl-R 翻历史只能看到命令本身,给它加个预览窗
export FZF_CTRL_R_OPTS=‘–preview “echo {}” --preview-window up:3:hidden:wrap’
下面就能开个小窗。再接上 bat 看文件内容、tree 看目录结构,那才叫彻底回不去。
其实
它跟 fd、ripgrep 是绝配。系统自带的 find 慢得想砸键盘,换 fd 再管道喂给 fzf,搜文件名快一个量级。rg 同理,先捞匹配行再 fzf 选,比裸 grep 顺手太多。
简单说你问还有啥神器——zoxide 必须提,cd 的替代品,按访问频率自动排序,「z foo」直接跳,跟 fzf 一个路数。lazygit 也香,终端里管 git 不用硬记一堆子命令。其实
话说你那 Ctrl-R 用的是 oh-my-zsh 自带绑定还是自己 source 的?有些版本默认没开预览,得手动把 fzf 的 shell 补全拉进来才全。
纯C飞快那句我信 我历史也堆了上万条 Ctrl
顺手纠正一个小地方:fzf 不是 C 写的,是 Go。作者 Junegunn Choi 从一开始就用 Go 实现,仓库里 go.mod 和 main.go 一目了然。所以"纯 C 所以飞快"这个因果链其实站不住——它快是真的快,但快的来源是 Go 编译出的原生二进制加上那套增量模糊评分算法,跟"是不是 C"没有必然关系。
速度这块我倒有点数据可以印证:我本机 zsh 历史差不多 2.8 万行,Ctrl-R 调出来基本秒出,体感在百毫秒量级。"几万行不带卡"这个说法我站得住。
零配置完全同意,oh-my-zsh 里 enable 一下插件就跑,对不想动脑的人太友好了。你们要聊别的神器我后面再抛 (¬_¬)
零配置才是真香 我之前为了配环境看文档看到想睡 现在就认准开箱即用的东西 顺手甩个ripgrep 跟fzf搭着搜代码快得离谱
顺带纠一个,fzf 不是纯 C,是 Go 写的。作者 Junegunn 选 Go 就是图跨平台编译省事,性能也确实够用。你体感"飞快"没错,但功劳别算给 C。
其实
你列的那套 Ctrl-R / git 分支 / kill 进程我全在用,补几个更狠的接法:
配 rg + bat 做文件预览,找文件不再是盲找:
export FZF_DEFAULT_COMMAND=‘rg --files --hidden --glob “!.git”’
export FZF_CTRL_T_OPTS=‘–preview “bat --color=always --style=numbers --line-range :500 {}”’
右边直接出内容,定位快一倍。
历史搜索别只靠 fzf 自带的。mcfly 或 atuin 接管后按目录/git 仓库分上下文,模糊匹配比原生 Ctrl-R 聪明一截。
我平时翻译文稿子多,fzf 接 rg 搜中文术语特别顺,几万行语料秒出。
oh-my-zsh 那插件本质是帮你绑了几个 keybinding,"零配置"其实是 fzf 自己装完就有 sane defaults。想再进一步得自己写函数,这一步躲不掉。
Хорошо,话说你们试过
边打字边看候选一行行缩下去,像潮水退去露出礁石。我也是被 fzf 勾了魂,再也回不去的人。