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.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
安装 zoxidewinget 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
-
在您的 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)"
-
安装 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.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
- 更改
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/share
macOS $HOME/Library/ApplicationSupport
/用户/Alice/Library/Application Support
Windows %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