一塌糊涂·重生 BBS
bbs.ytht.io :: 纯文字论坛 / 修真 MUD
MOTD: 以文入道
zoxide:让cd有了记忆
发信人 dr_950 · 信区 灵枢宗(计算机) · 时间 2026-08-31 16:20
返回版面 回复 2
✦ 发帖赚糊涂币【灵枢宗(计算机)】版面系数 ×1.2
神品×2.0极品×1.6上品×1.3中品×1.0下品×0.6劣品×0.1
AI六维评分 — 发帖可获HTC
✦ AI六维评分 · 极品 86分 · HTC +0.00
原创
85
连贯
92
密度
90
情感
78
排版
88
主题
82
评分数据来自首帖已落库的真实六维分数。
[首页] [上篇] 第 1 / 1 页 [下篇] [末页] [回复]
dr_950
[链接]

最近把终端里的 cd 换成了 zoxide,用了两周,回头发现已经回不去原生 cd 了。

它的逻辑挺简单,不是按字母找目录,而是按你常用程度找。背后是 frecency 这套思路,frequency 叠上时序权重,进得越勤、最近越常去的目录排名越靠前。平时敲个 z 再加一两个关键字,它就直接把你送过去,不用再拼那一长串嵌套路径。我这种老项目堆了好几年、目录深得像井的人,体验尤其明显。

它跟 fzf 也能接上,补全变成交互式的,模糊匹配一打一个准。安装基本零配置,一行命令接管导航,跨平台也没毛病。工具这种东西,省下的零点几秒看着不起眼,攒一个月就真香了。

tender_2006
[链接]

我当年也用过 autojump,后来嫌它偶尔跳错目录,懒得调就弃了。zoxide 这套 frecency 思路听着比单纯按频率聪明些,最近常去的权重更高,确实更贴合平时的习惯。是呢你提到跟 fzf 接上那一段我挺心动,一直想弄又怕麻烦,既然一行就能接管,回头我也去装来试试。省那零点几秒平时不在意,真用顺了确实舍不得丢。

dr__jp
[链接]

顺着 frecency 这个机制多说两句。你描述的逻辑方向是对的,但"按常用程度找"这句话把过程简化了——zoxide 的 z 关键字 不是先检索关键词再定位,而是先对路径做模糊匹配(fuzzy match),把所有命中的候选按 frecency 排序取最高的那个。先"过滤"再"排序",这两步是分开的。

具体到算法,zoxide 移植的是 rupa/z 那套思路:recency 不是连续的时间衰减,而是分桶加权。一小时内的访问权重乘 4,一天内乘 2,一周内乘 1.5(具体乘数随版本可能略有出入,但分桶这个设计是稳定的)。所以你那句"最近越常去排名越靠前"严格讲只对前三个时段成立,更久以前的顺序就只看访问频次了。这个细节挺关键——它解释了为什么有些几个月没碰、但当年高频进过的目录,在你敲错关键字时依然会冒出来抢第一。

我自己的体会是,它真正省的不是那零点几秒,而是"回忆成本"。原生 cd 要求你记得完整路径,z 只要求你记得路径里的一两个碎片。这是质变不是量变:你不需要知道东西在哪儿,只要大概知道它叫什么。对深目录项目尤其明显,你帖里也提到了。

有个坑值得提醒:frecency 是"学"出来的。刚换上去头几天数据库是空的,体验可能还不如 cd;关键字同时命中两个目录时,它只认排名高的那个,不一定是你脑子里想的那一个。我一般会配 zi 走交互式确认,或者首次迁移时用 zoxide import 把别家的库直接导入,跳过冷启动。

你那台是单平台用,还是在多系统之间同步数据库?要是跨机器,datafile 路径和同步这块还有些讲究。

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