32 个版本

0.9.4 2024 年 2 月 20 日
0.9.2 2023 年 8 月 4 日
0.9.1 2023 年 5 月 7 日
0.9.0 2023 年 1 月 7 日
0.3.0 2020 年 3 月 30 日

#3 in 命令行工具

Download history 768/week @ 2024-04-22 739/week @ 2024-04-29 538/week @ 2024-05-06 657/week @ 2024-05-13 614/week @ 2024-05-20 586/week @ 2024-05-27 912/week @ 2024-06-03 739/week @ 2024-06-10 553/week @ 2024-06-17 493/week @ 2024-06-24 508/week @ 2024-07-01 607/week @ 2024-07-08 510/week @ 2024-07-15 521/week @ 2024-07-22 775/week @ 2024-07-29 794/week @ 2024-08-05

每月 2,707 次下载

MIT 许可证

1MB
3K SLoC

Rust 1.5K SLoC // 0.0% comments Shell 348 SLoC // 0.1% comments TypeScript 278 SLoC BASH 228 SLoC PowerShell 123 SLoC Elvish 110 SLoC Zsh 5 SLoC

特别感谢

Warp
Warp 是一个集成了人工智能的现代、基于 Rust 的终端,使您和您的团队能够更快地构建出色的软件。
访问 warp.dev 了解更多信息。

zoxide

crates.io Downloads Built with Nix

zoxide 是一个 更智能的 cd 命令,灵感来自 z 和 autojump。

它记录您最常使用的目录,因此您只需几键即可“跳转”到它们。
zoxide 支持所有主流 shell。

入门安装配置集成

入门

Tutorial

z foo              # cd into highest ranked directory matching foo
z foo bar          # cd into highest ranked directory matching foo and bar
z foo /            # cd into a subdirectory starting with foo

z ~/foo            # z also works like a regular cd command
z foo/             # cd into relative path
z ..               # cd one level up
z -                # cd into previous directory

zi foo             # cd with interactive selection (using fzf)

z foo<SPACE><TAB>  # show interactive completions (zoxide v0.8.0+, bash 4.4+/fish/zsh only)

有关匹配算法的更多信息,请参阅此处

安装

zoxide 可以通过以下 4 个简单步骤进行安装

  1. 安装二进制文件

    zoxide 在大多数主流平台上运行。如果您的平台未列在下文中,请创建一个问题

    Linux / WSL

    推荐通过安装脚本安装 zoxide

    curl -sS https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | bash
    

    或者,您可以使用软件包管理器

    发行版 仓库 说明
    任何 crates.io cargo安装 zoxide --锁定
    任何 asdf asdf plugin add zoxide https://github.com/nyrst/asdf-zoxide.git
    asdf install zoxide latest
    任何 conda-forge conda install-c conda-forge zoxide
    任何 guix guix install zoxide
    任何 Linuxbrew brew安装 zoxide
    任何 nixpkgs nix-env-iA nixpkgs.zoxide
    Alpine Linux 3.13+ Alpine Linux 软件包 apk add zoxide
    Arch Linux Arch Linux Extra pacman -S zoxide
    CentOS 7+ Copr dnf copr enable atim/zoxide
    dnf install zoxide
    Debian 11+[^1] Debian 软件包 apt install zoxide
    Devuan 4.0+ Devuan 软件包 apt install zoxide
    Fedora 32+ Fedora 软件包 dnf install zoxide
    Gentoo GURU Overlay eselect repository enable guru
    emerge--sync guru
    emerge app-shell/zoxide
    Manjaro pacman -S zoxide
    openSUSE Tumbleweed openSUSE Factory zypper install zoxide
    Parrot OS[^1] apt install zoxide
    Raspbian 11+[^1] Raspbian 软件包 apt install zoxide
    Rhino Linux Pacstall 软件包 pacstall-I zoxide-deb
    Slackware 15.0+ SlackBuilds 说明
    Solus Solus 软件包 eopkg install zoxide
    Ubuntu 21.04+[^1] Ubuntu 软件包 apt install zoxide
    Void Linux Void Linux 软件包 xbps-安装-S zoxide
    macOS

    要安装 zoxide,请使用软件包管理器

    仓库 说明
    crates.io cargo安装 zoxide --锁定
    Homebrew brew安装 zoxide
    asdf asdf plugin add zoxide https://github.com/nyrst/asdf-zoxide.git
    asdf install zoxide latest
    conda-forge conda install-c conda-forge zoxide
    MacPorts port install zoxide
    nixpkgs nix-env-iA nixpkgs.zoxide

    或者,在您的终端中运行此命令

    curl -sS https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | bash
    
    Windows

    zoxide 与 PowerShell 一起工作,以及运行在 Cygwin、Git Bash 和 MSYS2 中的 shell。

    建议使用 winget 安装 zoxide

    winget install ajeetdsouza.zoxide
    

    或者,您可以使用其他软件包管理器

    仓库 说明
    crates.io cargo安装 zoxide --锁定
    Chocolatey choco install zoxide
    conda-forge conda install-c conda-forge zoxide
    Scoop scoop install zoxide
    BSD

    要安装 zoxide,请使用软件包管理器

    发行版 仓库 说明
    任何 crates.io cargo安装 zoxide --锁定
    DragonFly BSD DPorts pkg install zoxide
    FreeBSD FreshPorts pkg install zoxide
    NetBSD pkgsrc pkgin install zoxide

    或者,在您的终端中运行此命令

    curl -sS https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | bash
    
    Android

    要安装 zoxide,请使用软件包管理器

    仓库 说明
    Termux pkg install zoxide
  2. 在您的 shell 中设置 zoxide

    要开始使用 zoxide,请将其添加到您的 shell 中。

    Bash

    将此内容添加到您的配置文件末尾(通常为 ~/.bashrc

    eval "$(zoxide init bash)"
    
    Elvish

    将此内容添加到您的配置文件末尾(通常为 ~/.elvish/rc.elv

    eval (zoxide init elvish | slurp)
    

    注意 zoxide 仅支持 elvish v0.18.0 及以上版本。

    Fish

    将此内容添加到您的配置文件末尾(通常为 ~/.config/fish/config.fish

    zoxide init fish | source
    
    Nushell

    将此内容添加到您的 env 文件末尾(通过在 Nushell 中运行 $nu.env-path 来查找)

    zoxide init nushell | save -f ~/.zoxide.nu
    

    现在,将此内容添加到您的配置文件末尾(通过在 Nushell 中运行 $nu.config-path 来查找)

    source ~/.zoxide.nu
    

    注意 zoxide 仅支持 Nushell v0.89.0+。

    PowerShell

    将此内容添加到您的配置文件末尾(通过在 PowerShell 中运行 echo $profile 来查找)

    Invoke-Expression (& { (zoxide init powershell | Out-String) })
    
    Xonsh

    将此内容添加到您的配置文件末尾(通常为 ~/.xonshrc

    execx($(zoxide init xonsh), 'exec', __xonsh__.ctx, filename='zoxide')
    
    Zsh

    将此内容添加到您的配置文件末尾(通常为 ~/.zshrc

    eval "$(zoxide init zsh)"
    

    为了使自动完成功能正常工作,上述行必须添加到调用 compinit 之后的。您可能需要通过运行 rm ~/.zcompdump*; compinit 来重建您的自动完成缓存。

    任何 POSIX shell

    将此内容添加到您的配置文件末尾

    eval "$(zoxide init posix --hook prompt)"
    
  3. 安装 fzf (可选)

    fzf 是一个命令行模糊查找器,由 zoxide 用于自动完成/交互式选择。可以从 此处 安装。

    注意 zoxide 仅支持 fzf v0.33.0 及以上版本。

  4. 导入您的数据 (可选)

    如果您目前使用这些插件中的任何一种,您可能希望将数据导入 zoxide

    autojump

    在您的终端中运行此命令

    zoxide import --from=autojump "/path/to/autojump/db"
    

    路径通常根据您的系统而变化

    操作系统 路径 示例
    Linux $XDG_DATA_HOME/autojump/autojump.txt$HOME/.local/share/autojump/autojump.txt /home/alice/.local/share/autojump/autojump.txt
    macOS $HOME/Library/autojump/autojump.txt /Users/Alice/Library/autojump/autojump.txt
    Windows %APPDATA%\autojump\autojump.txt C:\Users\Alice\AppData\Roaming\autojump\autojump.txt
    fasd, z, z.lua, zsh-z

    在您的终端中运行此命令

    zoxide import --from=z "path/to/z/db"
    

    路径通常根据您的系统而变化

    插件 路径
    fasd $_FASD_DATA$HOME/.fasd
    z (bash/zsh) $_Z_DATA$HOME/.z
    z (fish) $Z_DATA$XDG_DATA_HOME/z/data$HOME/.local/share/z/data
    z.lua (bash/zsh) $_ZL_DATA$HOME/.zlua
    z.lua (fish) $XDG_DATA_HOME/zlua/zlua.txt$HOME/.local/share/zlua/zlua.txt$_ZL_DATA
    zsh-z $ZSHZ_DATA$_Z_DATA$HOME/.z
    位置管理

    在 PowerShell 中运行此命令

    $db = New-TemporaryFile
    (Get-ZLocation).GetEnumerator() | ForEach-Object { Write-Output ($_.Name+'|'+$_.Value+'|0') } | Out-File $db
    zoxide import --from=z $db
    

配置

标志

在调用 zoxide init 时,以下标志可用

  • --cmd
    • 更改 zzi 命令的前缀。
    • --cmd j 会将命令更改为 (j, ji)。
    • --cmd cd 将替换 cd 命令。
  • --hook<HOOK>
    • 更改 zoxide 增加目录分数的频率
      钩子 描述
      none 永不
      prompt 在每个 shell 提示符时
      pwd 每次更改目录时
  • --no-cmd
    • 阻止 zoxide 定义 zzi 命令。
    • 如果选择重新定义,这些函数将作为 __zoxide_z__zoxide_zi 在您的 shell 中继续可用。

环境变量

环境变量[^2] 可用于配置。必须在调用 zoxide init 之前设置。

  • _ZO_DATA_DIR
    • 指定数据库存储的目录。
    • 默认值在不同操作系统之间有所不同
      操作系统 路径 示例
      Linux / BSD $XDG_DATA_HOME$HOME/.local/share /home/alice/.local/share
      macOS $HOME/Library/ApplicationSupport /用户/Alice/Library/Application Support
      Windows %LOCALAPPDATA% C:\Users\Alice\AppData\Local
  • _ZO_ECHO
    • 当设置为1时,z 将在导航到它之前打印匹配的目录。
  • _ZO_EXCLUDE_DIRS
    • 从数据库中排除指定的目录。
    • 这提供了一个由OS特定字符分隔的通配符列表
      操作系统 分隔符 示例
      Linux / macOS / BSD : $HOME:$HOME/private/*
      Windows ; $HOME;$HOME/private/*
    • 默认情况下,这设置为 "$HOME"
  • _ZO_FZF_OPTS
    • 在交互式选择期间传递给fzf的自定义选项。有关选项列表,请参阅man fzf
  • _ZO_MAXAGE
    • 配置老化算法,该算法限制数据库中的最大条目数。
    • 默认情况下,这设置为10000。
  • _ZO_RESOLVE_SYMLINKS
    • 当设置为1时,z 在将目录添加到数据库之前将解析符号链接。

第三方集成

应用程序 描述 插件
aerc 电子邮件客户端 原生支持
clink 改进的Windows cmd.exe clink-zoxide
emacs 文本编辑器 zoxide.el
felix 文件管理器 原生支持
joshuto 文件管理器 原生支持
lf 文件管理器 请参阅wiki
nnn 文件管理器 nnn-autojump
ranger 文件管理器 ranger-zoxide
telescope.nvim Neovim的模糊查找器 telescope-zoxide
t tmux会话管理器 原生支持
tmux-session-wizard tmux会话管理器 原生支持
vim / neovim 文本编辑器 zoxide.vim
xplr 文件管理器 zoxide.xplr
xxh 通过SSH传输shell配置 xxh-plugin-prerun-zoxide
zabb 为路径查找最短的查询 原生支持
zsh-autocomplete zsh的实时补全 原生支持

[^1]: Debian / Ubuntu衍生版更新其软件包非常缓慢。如果您使用这些分布之一,请考虑使用安装脚本。

[^2]: 如果您不确定如何在您的shell中设置环境变量,请查看wiki

依赖关系

~5–15MB
~202K SLoC