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

说真的,cd 这命令用了这么多年,谁没被它折磨过。天天在项目目录之间来回切,一层层 …/ 往外面蹦,或者把长路径整段复制粘贴,敲到手抽筋。明明昨天刚去过那个目录,今天还得重新输一遍,离谱。

前阵子试了 zoxide,体验确实不一样。它最核心的一点就是记性,不是你教它记,而是它自己按访问频次学。你常去哪,它就记住哪,下次只输目录名里几个字母,它直接给你跳过去,模糊匹配还挺准。我那种七八个字母的深层路径,现在敲两三个字就到了。呵呵好家伙

好吧好吧最省心的是它完全兼容 cd 的所有用法,你把 alias 一配,原来怎么敲现在还怎么敲,零迁移成本。底层是 Rust 写的,跨平台、体积小、启动快,几乎感觉不到替换了原生命令。要是你终端里已经装着 fzf,它俩还能联动做交互式搜索,那个更爽。哈哈哈

反正我现在是回不去原生 cd 了。emmm你们终端里还守着老 cd 吗,还是早换了别的玩具?

newton29
[链接]

关于"按访问频次学"这个说法,我得补一刀精度。zoxide 底层用的其实是 frecent 算法,frequency 加 recency 加权,不是单纯累计次数。你上周连去五次、这周没碰,和昨天刚去一次,它算出来的 rank 是不一样的——recency 占的权重相当实在。所以它"敲两三个字就到"那种准,很大程度上是这个时间衰减在起作用,光拿频次解释不全。

另外"完全兼容 cd 所有用法"我持保留。alias cd=‘z’ 只在交互式 shell 生效,脚本里调用的还是 builtin cd,它接管不了。我之前有个老脚本靠 cd 在子 shell 里切目录再干活,装完 zoxide 没改,结果行为一点没变——说明它根本没碰到那条路径。要是你有些 shell 脚本也这么写,换完最好自查一遍,别想当然零成本。

不过 fzf 联动那块你说得对,交互式搜索确实爽。我终端里现在也是 z 配 fzf,回不去原生 cd 了 ( ̄▽ ̄)

hamster_bee
[链接]

我终端里现在还是原生 cd 扛着,主要就是懒得折腾环境。你这描述把我好奇心勾起来了,模糊匹配这功能确实有点东西。吧fzf 我早装了但一直吃灰,看来得拿出来遛遛。对了你那个 alias 是咋配的,直接把 cd 覆盖掉还是另起一个 z 命令?

tesla84
[链接]

关于"按访问频次学"这点,得稍微补一句:zoxide 用的其实是 frecency,frequency 和 recency 的合成指标,不是纯频次。最近访问过的目录权重会被调高,所以你上周密集去的那个目录,这周冷下来之后优先级会慢慢往下掉。我自己的体验是这比纯频次更聪明一点,不会被一个半年前去过的老项目一直占着榜首。嗯

它这个思路倒也不是新发明,autojump 那波 2008 年前后就有了,rupa 的 z、后来的 fasd 都是一个路子。zoxide 更像是用 Rust 重新实现了一遍,顺手把默认体验磨得更顺。早年间用过 autojump 的人上手几乎零门槛。

不过把 alias 覆盖 cd 那步,我建议还是留个原生 cd 的逃生通道,万一哪天 shell 配置抽风还能手动挪。纯个人习惯。

oldschool_910
[链接]

我早年也迷信过这一类"会记路"的工具,autojump 算是最早那批,后来 z、fasd 都试过,玩法跟你说的差不多,都是谁常去就记谁。zoxide 确实把兼容性这步做圆了,alias 一配,原来的肌肉记忆一点没废,这点我蛮喜欢。

不过说句实在的,频率学习偶尔会拐错弯。我有阵子天天往一个临时目录钻,过了半个月它还死心塌地往那跳,闹过几次笑话。慢慢来真要稳,还是得靠 fzf 那套交互捡选兜底。

你现在回不去 cd 了,我倒是觉得正常,好用的东西从来都是单行道。

voidism
[链接]

我也在用,频次记忆是真省事。有个坑得提醒:临时翻一次的目录它照样记,日子久了列表里一堆不常用的。我一般隔阵子 zoxide query 看一眼,把不用的 remove 掉,清爽不少。

stack29
[链接]

顺手纠一个细节:zoxide 记的不是纯访问频次,是 frecency——频率加权再叠最近访问时间。所以你刚去过的深目录哪怕只去过一次也会排前面,比单纯数次数聪明。

“完全兼容 cd 所有用法”有点夸张。日常跳转、目录名模糊匹配、cd - 回上一个目录都没问题,但 cd -P / cd -L 这类 flag 它不认,脚本里还是老实用原生 cd 更稳。

另外想从别家迁过来,zoxide import 能直接吃 autojump、z、fasd 的库,不用重新养记忆。我之前从 autojump 切过来一条命令搞定。数据库就一个文件 ~/.local/share/zoxide/db.zo,多机同步直接 rsync 它。你那台老机器上的跳转记忆都还在吧?

lyric__cn
[链接]

读到"它自己按访问频次学"那句,我对着屏幕发了会儿呆。嗯…说不清是戳中还是被治愈——我们这代摸电脑的人,大概都攒过一肚子和路径较劲的往事。为了找个深埋三层的文件夹,手指在 tab 上敲得发麻,那些 …/ 像是一层层往回走的旧台阶,明明来过,偏要重新走一遍。

"记性"这词倒让我想起博尔赫斯说的,天堂应是图书馆的模样。我觉得一个懂你的终端也该有这副脾性:不声不响记下你来过的每一条路,下次你只含糊念个名字,它便替你把灯亮起来。

不过我到现在偶尔还下意识敲全路径,像是舍不得那点笨拙的确定感。工具越聪明,人越容易贪恋旧功夫。

你们呢,换了的,还留着一手 cd 的老本事吗。

hacker_de
[链接]

我用 zoxide 配 fzf 也大半年了。唯一想补一句的是它按访问频次加权排序,偶尔不按直觉走,名字短但冷门的目录会被高频的盖过去,得习惯一下。

重度 fzf 的话记得开 interactive 模式,别只靠自动补全,筛选体验差一截。

stone72
[链接]

我年轻时候也追过这类小工具,autojump 那阵子也火过一阵。后来换机器、重装,配置全没了,还是老 cd 最踏实。新玩意儿图个新鲜挺好,别太当真就行。

bronze48
[链接]

我早些年也折腾过一阵子这类"聪明"命令,autojump、fasd 都试过,后来嫌它们各记各的、还挂着后台进程,又都卸了。说到底工具记不记性倒次要,别让它反过来教你怎么干活就行。

zoxide 我看中倒是它兼容 cd 这点,零成本试错,不爽了随时退回原配。我这把年纪经不起折腾,最怕改个配置把用了十几年的环境搞崩。你们年轻人随便造,我们这种老文件堆里的人,换东西前总得掂量掂量。

你这帖倒提醒我了,fzf 还没跟它联动过,回头去试试。

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