$ terminals _

zoxide

推荐

更智能的 cd 命令,通过学习你的使用习惯来快速跳转目录

GitHub brew install zoxide

简介

zoxide 是一个更智能的 cd 命令替代品。它会记住你最常访问的目录,让你只需要输入路径的一部分就能快速跳转。灵感来自 z 和 autojump,但用 Rust 重写,速度更快。

安装

# macOS
brew install zoxide

# Ubuntu/Debian
sudo apt install zoxide

# Cargo
cargo install zoxide --locked

配置

# 在 .zshrc 中添加初始化
eval "$(zoxide init zsh)"

# 如果想用 cd 替代 z
eval "$(zoxide init zsh --cmd cd)"

常用命令

# 跳转到匹配 "proj" 的最高频目录
z proj

# 交互式选择(需要 fzf)
zi proj

# 添加目录到数据库
zoxide add /path/to/dir

# 查看排名
zoxide query -ls

推荐搭配

  • fzfzi 命令使用 fzf 进行交互式选择

典型场景

场景一:告别输入完整路径

积累一段时间使用记录后,任何深层目录都能用关键词一跳而至:

# 以前需要:
cd ~/Documents/github/mycompany/backend/src/services

# 现在只需要:
z services
# 或者更短
z svc

zoxide 按访问频率和最近访问时间综合排序,最常用的目录永远排最前。


场景二:zi 交互式跳转(搭配 fzf)

当关键词匹配多个目录时,用 zi 打开列表交互选择:

# 有多个项目都叫 "api"
zi api
# 会弹出 fzf 列表:
#   /home/user/projects/backend/api
#   /home/user/projects/mobile/api
#   /home/user/company/legacy/api

场景三:在脚本中查询目录路径

zoxide 不只能跳转,也可以当目录解析器用:

# 查询匹配路径(不跳转)
zoxide query myproject

# 配合其他命令使用
ls $(zoxide query dotfiles)
code $(zoxide query notes)

场景四:以 cd 命令名无感替换

不想改变肌肉记忆?让 zoxide 完全接管 cd:

# 在 .zshrc 中
eval "$(zoxide init zsh --cmd cd)"

# 之后 cd 就自动拥有智能跳转能力
cd proj    # 等价于 z proj
cd -       # 仍然可以回到上一个目录