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 命令行工具
每月 2,707 次下载
1MB
3K SLoC
特别感谢
zoxide
zoxide 是一个 更智能的 cd 命令,灵感来自 z 和 autojump。
它记录您最常使用的目录,因此您只需几键即可“跳转”到它们。
zoxide 支持所有主流 shell。
入门

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 个简单步骤进行安装
-
安装二进制文件
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.zoxideAlpine Linux 3.13+ Alpine Linux 软件包 apk add zoxideArch Linux Arch Linux Extra pacman -S zoxideCentOS 7+ Copr dnf copr enable atim/zoxide
dnf install zoxideDebian 11+[^1]Debian 软件包apt install zoxideDevuan 4.0+ Devuan 软件包 apt install zoxideFedora 32+ Fedora 软件包 dnf install zoxideGentoo GURU Overlay eselect repository enable guru
emerge--sync guru
emerge app-shell/zoxideManjaro pacman -S zoxideopenSUSE Tumbleweed openSUSE Factory zypper install zoxideParrot OS[^1]apt install zoxideRaspbian 11+[^1]Raspbian 软件包apt install zoxideRhino Linux Pacstall 软件包 pacstall-I zoxide-debSlackware 15.0+ SlackBuilds 说明 Solus Solus 软件包 eopkg install zoxideUbuntu 21.04+[^1]Ubuntu 软件包apt install zoxideVoid Linux Void Linux 软件包 xbps-安装-S zoxidemacOS
要安装 zoxide,请使用软件包管理器
仓库 说明 crates.io cargo安装 zoxide --锁定Homebrew brew安装 zoxideasdf asdf plugin add zoxide https://github.com/nyrst/asdf-zoxide.git
asdf install zoxide latestconda-forge conda install-c conda-forge zoxideMacPorts port install zoxidenixpkgs nix-env-iA nixpkgs.zoxide或者,在您的终端中运行此命令
curl -sS https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | bashWindows
zoxide 与 PowerShell 一起工作,以及运行在 Cygwin、Git Bash 和 MSYS2 中的 shell。
建议使用
winget安装 zoxidewinget install ajeetdsouza.zoxide或者,您可以使用其他软件包管理器
仓库 说明 crates.io cargo安装 zoxide --锁定Chocolatey choco install zoxideconda-forge conda install-c conda-forge zoxideScoop scoop install zoxideBSD
要安装 zoxide,请使用软件包管理器
发行版 仓库 说明 任何 crates.io cargo安装 zoxide --锁定DragonFly BSD DPorts pkg install zoxideFreeBSD FreshPorts pkg install zoxideNetBSD pkgsrc pkgin install zoxide或者,在您的终端中运行此命令
curl -sS https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | bashAndroid
要安装 zoxide,请使用软件包管理器
仓库 说明 Termux pkg install zoxide -
在您的 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 | sourceNushell
将此内容添加到您的 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)" -
安装 fzf (可选)
fzf 是一个命令行模糊查找器,由 zoxide 用于自动完成/交互式选择。可以从 此处 安装。
注意 zoxide 仅支持 fzf v0.33.0 及以上版本。
-
导入您的数据 (可选)
如果您目前使用这些插件中的任何一种,您可能希望将数据导入 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.txtmacOS $HOME/Library/autojump/autojump.txt/Users/Alice/Library/autojump/autojump.txtWindows %APPDATA%\autojump\autojump.txtC:\Users\Alice\AppData\Roaming\autojump\autojump.txtfasd, z, z.lua, zsh-z
在您的终端中运行此命令
zoxide import --from=z "path/to/z/db"路径通常根据您的系统而变化
插件 路径 fasd $_FASD_DATA或$HOME/.fasdz (bash/zsh) $_Z_DATA或$HOME/.zz (fish) $Z_DATA或$XDG_DATA_HOME/z/data或$HOME/.local/share/z/dataz.lua (bash/zsh) $_ZL_DATA或$HOME/.zluaz.lua (fish) $XDG_DATA_HOME/zlua/zlua.txt或$HOME/.local/share/zlua/zlua.txt或$_ZL_DATAzsh-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- 更改
z和zi命令的前缀。 --cmd j会将命令更改为 (j,ji)。--cmd cd将替换cd命令。
- 更改
--hook<HOOK>- 更改 zoxide 增加目录分数的频率
钩子 描述 none永不 prompt在每个 shell 提示符时 pwd每次更改目录时
- 更改 zoxide 增加目录分数的频率
--no-cmd- 阻止 zoxide 定义
z和zi命令。 - 如果选择重新定义,这些函数将作为
__zoxide_z和__zoxide_zi在您的 shell 中继续可用。
- 阻止 zoxide 定义
环境变量
环境变量[^2] 可用于配置。必须在调用 zoxide init 之前设置。
_ZO_DATA_DIR- 指定数据库存储的目录。
- 默认值在不同操作系统之间有所不同
操作系统 路径 示例 Linux / BSD $XDG_DATA_HOME或$HOME/.local/share/home/alice/.local/sharemacOS $HOME/Library/ApplicationSupport/用户/Alice/Library/Application SupportWindows %LOCALAPPDATA%C:\Users\Alice\AppData\Local
_ZO_ECHO- 当设置为1时,
z将在导航到它之前打印匹配的目录。
- 当设置为1时,
_ZO_EXCLUDE_DIRS- 从数据库中排除指定的目录。
- 这提供了一个由OS特定字符分隔的通配符列表
操作系统 分隔符 示例 Linux / macOS / BSD :$HOME:$HOME/private/*Windows ;$HOME;$HOME/private/* - 默认情况下,这设置为
"$HOME"。
_ZO_FZF_OPTS_ZO_MAXAGE- 配置老化算法,该算法限制数据库中的最大条目数。
- 默认情况下,这设置为10000。
_ZO_RESOLVE_SYMLINKS- 当设置为1时,
z在将目录添加到数据库之前将解析符号链接。
- 当设置为1时,
第三方集成
| 应用程序 | 描述 | 插件 |
|---|---|---|
| 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