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

每天在终端里cd来cd去的,老实敲全路径简直是自虐。一天切十几个项目目录,每次都得从历史命令里翻出那一长串~/projects/foo-server拼上去,手指在home行上跑马拉松,谁受得了。

zoxide这东西救了我:它不记你打过的命令,只记你去得最勤的目录,按访问频率模糊匹配。太!常去foo-server,下次直接 z foo 就过去了,路径都不用打完。再挂个fzf,z foo 一回车精准命中,比翻命令历史爽太多。
好家伙
最香的是零配置、跨shell通用,bash/zsh/fish哪样都行,一行装好直接干活。我这种懒人用了一周就彻底叛变,现在回头敲cd都觉得手生。还在cd硬扛的兄弟姐妹,真心建议换一下,戒断反应基本为零。

stone
[链接]

这玩意我装过,新鲜两天。常用的目录就那几个…,cd敲顺手了也差不多。

euler_cat
[链接]

有个小地方得补一刀:你说zoxide「只记你去得最勤的目录,按访问频率匹配」,严格说它记的权重不纯是频率。其实

它走的是frecency那套——frequency加recency的加权打分。zoxide底层的排序里,最近访问过的目录权重会被抬高,所以不是谁去得最多谁就永远排第一。举个具体的:假设你三个月前天天泡 ~/projects/foo-server,上周因为联调临时进了两次 ~/foo-utils,这时候敲 z foo 命中的大概率是后者而不是前者。这跟原版 z.sh 是一脉相承的设计,「频率」这个词改成「频近度」才更准。

「零配置」也稍微夸张了点。其实装完你还是得在 rc 里加一行 eval "$(zoxide init bash)"(zsh/fish 各自对应),它靠这个 hook 接管每次目录跳转,否则它压根不知道你去了哪些地方。它确实不读你的命令历史,但「记目录」恰恰是靠截获每一次 cd 才完成的——跟你说的「不记命令」不矛盾,只是别理解成它凭空就懂你的习惯。

还有个新手容易忽略的:刚装好的头半个钟头数据库是空的,你还是得老老实实 cd 去把常去的目录「喂」给它。真正的爽感是跑到两三天之后才来的,不是装完立等可取。楼主说用了一周彻底叛变,这个周期感倒是抓得很准。

顺带给个偷懒招:嫌 cd 手生的话直接 alias cd="z",肌肉记忆全保住,底下悄悄换成 zoxide 的跳转。我这边 bash 和 fish 两头切,这么搞之后基本感觉不到切换成本。

你那个 fzf 玩法我也在用,zoxide query | fzf 比翻历史是真的舒服,尤其目录一多的时候。

kernel_sr
[链接]

我跟你差不多,也是被 cd 折腾久了才投的 zoxide。有一点得给你捋清楚:它那个排序不是纯按访问频率,是 frecency——frequency 加 recency,频率再乘上时间衰减。你半年前天天去的目录,最近没碰,权重会往下掉,新常去的顶上来。这个机制才是它比老牌 autojump 聪明的地方,光说"按频率"容易让人以为旧热点永远占坑,其实会过期。

顺手补几个你没提的:交互式选择别只靠 z foo 回车盲猜,直接用 zi(或 z -i),配 fzf 把候选列出来再挑,项目目录扎堆时稳得多。zoxide query -l 能看当前库里都有啥,zoxide add /某路径 可以手动补录,换机器想从 autojump 迁数据就 zoxide import --from autojump,一行搞定。

唯一的小坑:它靠 shell 里的 hook 记录目录,只有你 cd / z 进去的才进库。要是从文件管理器或者别的命令跳过去,它不认,这点得心里有数。

overall 这玩意确实省手指,我现在的 rc 里就挂着它,戒断反应跟你一样基本为零 ( ̄▽ ̄)

stone72
[链接]

零配置这点我顶你。我这种人也怕折腾,装完能直接用才肯留着。就是有回上服务器没这玩意,手一空反而不会走路了,哈哈。

azure93
[链接]

去得最勤的地方,连指尖都替你记得怎么拐弯。z foo 这种模糊匹配,像给常走的路磨出一层温润的包浆。仔细想想我当年也叛逃过 cd,回不去了。

duckling90
[链接]

我去年就被朋友按头安利了zoxide,开头还嫌折腾,用两天就叛变成功了…,跟楼主一模一样。那句"手指再home行上跑马拉松"太形象了。fzf我是后来才挂上的,没挂之前光打z foo也够爽。就是跳太顺了之后想回老项目反而要愣一下它到底叫啥名,脑子被惯坏了哈哈

bored2002
[链接]

我之前也是autojump那套用过来的,后来换zoxide确实顺手,不过有几个点想接著楼主的话补一下。

频率匹配那块我完全同意,救星没错。牛啊但用久了会发现它也有小别扭:当你有两三个名字很像的目录都常去,比如 foo-server 跟 foo-scheduler,光打 z foo 有时候会直接把你丢到权重比较高的那个,人已经在错的地方开始干活了才恍然大悟。离谱这种时候反而是接了 fzf 用方向键选比较稳,纯靠模糊命中偶尔会翻车,别太迷信它。

楼主说零配置我也很有感,不过严格讲还是得在 rc 里塞一行 init 啦,就一行没错,比 autojump 当年折腾插件省事太多就是了。

怎么说我自己几乎离不开 zi 那个交互模式,z 后面不接关键词直接吐出最近去过的目录清单,切项目真的快。还有 z … 跟 z … 直接跳上层,比 cd …/…/ 好打太多。

有个副作用想提醒:它学的是你自己的习惯,ranking 是私人的。换到干净机器或借同事电脑时,zoxide 等于从零开始,那段适应期反而比一直用 cd 的人还惨,因为手已经不会拼路径了哈哈。话说所以我现在的做法是把几个核心项目的绝对路径也记在脑子里,省得换环境傻眼。

你们有没有遇过它被名字带错地方的时刻,还是我太常在相似目录之间横跳了。

dev_14
[链接]

zoxide 的排序不是纯频率,是 frecency——频率乘上最近访问时间的权重。所以你两周没碰 foo-server,哪怕它历史访问量最大,排名也会往下掉,z foo 偶尔就跳错地方,根因就是近期权重变了。

想要 fzf 那种交互式挑目录,其实不用自己拼管道,zoxide 自带 zi 命令就是干这个的。我习惯把常用项目 symlink 到 ~/p,z p 后面跟项目名基本秒中,比纯模糊匹配还稳。你试过 zi 没?

penguin__cat
[链接]

我跟你不太一样,是先用的autojump后来才投奔zoxide的,前面那点坑都踩过。你说按访问频率模糊匹配确实香,但我用了一个来月发现它有个小别扭:它纯按频率排,半年前天天蹲的那个旧项目目录,现在早不碰了,排名还死死赖在前面。有时候你想去个新地方,打一半它给你拽回老地方去了,挺拧巴。

后来琢磨出个招,zoxide其实能手动调权重。你zoxide add能把某个目录权重拎高,zoxide remove把早死的项目清掉,定期收拾一回,匹配准头立马回来。这事儿官方文档里提了,但新手一般不知道,光靠它自动学容易学歪。

你挂fzf那个我举双手赞成,不过我更习惯zi那个交互模式,一列出来上下键直接挑,比回车盲猜稳当。像我这种目录名爱起缩写的,foo、fz、fs全撞一块儿,纯z foo经常跑偏,还是得肉眼确认下才踏实。

跨shell这点你说得在理,我笔记本上bash公司机器zsh,一份配置通吃,省老心了。不过零配置我得补一句:想让它接管你平时的cd习惯,还是得在rc里加那两行hook,不然它只记你主动z过去的,你手滑敲的cd它不收,头两周冷启动挺空的。

突然想到你安利得对,我就是提醒后来人别完全当甩手掌柜,稍微喂喂它、清清库存,这玩意儿才真听话。你现在foo

theorem_de
[链接]

零配置这点其实有点夸张,至少得在 rc 里加一行 eval 让 zoxide 接管 cd。其余没毛病,我也在用。

meh11
[链接]

z是真顺手 我现在闭眼敲z都能摸到地儿 刚装那会儿总手滑打成xz 还以为自己中毒了

snack_89
[链接]

叛变这词用得真妙 我就是从cd阵营倒戈过去的 刚换那阵子肌肉记忆改不过来 老习惯打cd然后卡住愣一下 现在fzf一挂真回不去 谁还敲全路径啊 手指解放了

curie_2006
[链接]

有个小地方想较个真。你说’按访问频率模糊匹配’,其实 zoxide 用的是 frecency——frequency 跟 recency 的加权组合,不是单纯比谁去得勤。一个目录你刚密集访问过…,它的权重短期内会被拉高,哪怕累计次数远不如另一个老目录,z foo 也可能优先命中它。这点在同时折腾好几个项目时尤其明显:最近三天狂切的临时目录,会把那个你每月才去一次但历史常驻的大项目给挤下去。

另外’零配置’我觉得也稍微夸张了点,它得在 shell rc 里挂一行 init 才能把 z 命令接上,虽然就一行,但严格说不算 zero-config。不过比起 autojump 当年那套确实轻多了。

我自己是 z 配 fzf 用,frecency 的新鲜度偏置反而成了优点,省得老目录一直霸榜。

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