文章目录zoxide记性好的 cd 命令它怎么工作的安装和配置和同类工具比有什么不同实际体验适合谁用zoxide记性好的 cd 命令在终端里切换目录这件事每个程序员每天都要做几十上百次。cd /very/long/path/to/project这种操作打多了手指都会抗议。zoxide 这个项目就是来解决这个问题的3.7 万多个 Star 说明大家确实有这个需求。简单说zoxide 是一个替你记路的工具。你平时正常用 cd 切换目录就行它会在后台默默记录你访问过哪些目录、访问了多少次。之后你想去某个目录只需要输入路径里的几个关键词它就能猜到你要去哪儿直接跳过去。它怎么工作的zoxide 的核心是一套评分算法。每当你进入一个目录这个目录的分数就会增加。用得越多的目录分数越高。当你输入z foo的时候它会在所有包含 “foo” 的目录里挑分数最高的那个跳转。这个设计有几个好处。第一你不需要记住完整路径只要记得目录名里包含什么关键词就行。第二它会自动学习你的习惯常用的目录自然排在前面。第三如果你有多个包含相同关键词的目录它会根据你的使用频率智能排序。实际用起来大概是这样z foo # 跳转到匹配 foo 的最高分目录 z foo bar # 同时匹配 foo 和 bar zi foo # 用 fzf 弹出交互式选择列表zi命令特别实用当你有好几个相似目录分不清的时候它会列出所有匹配项让你手动选。安装和配置zoxide 用 Rust 写的支持所有主流平台和 Shell。Linux、macOS、Windows、BSD 都能跑。Shell 方面Bash、Zsh、Fish、PowerShell、Nushell 这些全都支持。安装方式很多最简单的是用各平台的包管理器。macOS 用brew install zoxideWindows 用winget install ajeetdsouza.zoxideArch Linux 用pacman -S zoxide。也可以直接从 crates.io 装cargo install zoxide --locked。装完之后需要在 Shell 配置文件里加一行初始化命令。以 Zsh 为例在.zshrc末尾加上eval $(zoxide init zsh)这样就搞定了之后正常用 cd 就行zoxide 会自动在后台工作。和同类工具比有什么不同在 zoxide 之前比较出名的同类工具有 z 和 autojump。zoxide 的作者明确说是受这两个工具启发的但做了不少改进。首先是性能。zoxide 用 Rust 写的启动速度和查询速度都比 zShell 脚本快不少。对于目录数据库比较大的用户来说这个差距能感受到。其次是跨平台支持更全。z 只支持 POSIX ShellWindows 用户基本没法用。zoxide 原生支持 PowerShell 和 Windows这对需要在多平台工作的人来说是个加分项。还有一个细节zoxide 支持从 z、autojump、fasd 等工具导入历史数据。如果你之前用的是其他工具可以无缝迁移过来不用从零开始积累。实际体验我自己用了一段时间最明显的感受是打字少了。以前切换到项目目录要打一长串路径现在z proj就到了。特别是那种深层嵌套的目录省下来的按键次数很可观。fzf 集成是另一个亮点。装了 fzf 之后zi命令会弹出一个模糊搜索界面用方向键选就行。对于目录名相似的情况这个比纯命令行好用很多。环境变量配置也比较灵活。_ZO_EXCLUDE_DIRS可以排除不想记录的目录_ZO_MAXAGE可以控制数据库大小_ZO_ECHO可以让跳转时显示目标路径。这些小功能加起来让工具的可控性很强。适合谁用经常在终端里工作的人尤其是项目多、目录层级深的开发者装上这个基本就离不开了。运维、数据工程师这些需要频繁切换不同环境目录的岗位也很合适。如果你之前用过 z 或 autojump换到 zoxide 基本没有学习成本命令习惯是一样的只是底层更高效了。。如果你之前用过 z 或 autojump换到 zoxide 基本没有学习成本命令习惯是一样的只是底层更高效了。