特别感谢:
zoxide
[![crates.io][crates.io-badge]][crates.io] [![下载量][downloads-badge]][releases] [![使用Nix构建][builtwithnix-badge]][builtwithnix]
zoxide是一个更智能的cd命令,灵感来自z和autojump。
它会记住您最常使用的目录,因此您只需几个按键就可以"跳转"到这些目录。
zoxide适用于所有主流的shell。
入门指南
![教程][tutorial]
z foo # 进入与foo最匹配的最高排名目录
z foo bar # 进入与foo和bar最匹配的最高排名目录
z foo / # 进入以foo开头的子目录
z ~/foo # z也可以像普通cd命令一样使用
z foo/ # 进入相对路径
z .. # 向上一级目录
z - # 进入上一个目录
zi foo # 使用交互式选择进入目录(使用fzf)
z foo<SPACE><TAB> # 显示交互式补全(zoxide v0.8.0+,仅支持bash 4.4+/fish/zsh)
了解更多关于匹配算法的信息,请[点击这里][algorithm-matching]。
安装
zoxide可以通过4个简单的步骤安装:
-
安装二进制文件
zoxide可在大多数主要平台上运行。如果您的平台未列出,请[提交问题][issues]。
Linux / WSL
推荐通过安装脚本安装zoxide:
curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh
或者,您可以使用包管理器:
发行版 仓库 安装说明 任何 [crates.io] cargo install zoxide --locked
任何 [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 install zoxide
任何 [nixpkgs] nix-env -iA nixpkgs.zoxide
Alpine Linux 3.13+ [Alpine Linux Packages] 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 Packages]apt install zoxide
Devuan 4.0+ [Devuan Packages] apt install zoxide
Exherbo Linux [Exherbo packages] cave resolve -x repository/rust
cave resolve -x zoxide
Fedora 32+ [Fedora Packages] dnf install zoxide
Gentoo [Gentoo Packages] emerge app-shells/zoxide
Manjaro pacman -S zoxide
openSUSE Tumbleweed [openSUSE Factory] zypper install zoxide
Parrot OS1apt install zoxide
Raspbian 11+1[Raspbian Packages]apt install zoxide
Rhino Linux [Pacstall Packages] pacstall -I zoxide-deb
Slackware 15.0+ [SlackBuilds] [安装说明][slackbuilds-howto] Solus [Solus Packages] eopkg install zoxide
Ubuntu 21.04+1[Ubuntu Packages]apt install zoxide
Void Linux [Void Linux Packages] xbps-install -S zoxide
macOS
要安装 zoxide,请使用包管理器:
仓库 安装指令 [crates.io] cargo install zoxide --locked
[Homebrew] brew install 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 -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh
Windows
zoxide 可以与 PowerShell 以及在 Cygwin、Git Bash 和 MSYS2 中运行的 shell 一起使用。
推荐使用
winget
安装 zoxide:winget install ajeetdsouza.zoxide
或者,你可以使用其他包管理器:
仓库 安装指令 [crates.io] cargo install zoxide --locked
[Chocolatey] choco install zoxide
[conda-forge] conda install -c conda-forge zoxide
[Scoop] scoop install zoxide
如果你使用的是 Cygwin、Git Bash 或 MSYS2,你也可以使用安装脚本:
curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh
BSD
要安装 zoxide,请使用包管理器:
发行版 仓库 安装指令 任何 [crates.io] cargo install zoxide --locked
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
或者,在终端中运行以下命令:
curl -sS https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | bash
-
在你的 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
将以下内容添加到你的环境文件末尾(在 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 用于补全和交互式选择。可以从[这里][fzf-installation]安装。
注意 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
ZLocation
在 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 增加目录分数的频率:
Hook 描述 none
从不 prompt
在每个 shell 提示符 pwd
每当目录被更改时
- 更改 zoxide 增加目录分数的频率:
--no-cmd
- 防止 zoxide 定义
z
和zi
命令。 - 这些函数仍将在你的 shell 中作为
__zoxide_z
和__zoxide_zi
可用,以便你选择重新定义它们。
- 防止 zoxide 定义
环境变量
环境变量可用于配置。它们必须在调用 zoxide init
之前设置。
_ZO_DATA_DIR
- 指定存储数据库的目录。
- 默认值因操作系统而异:
操作系统 路径 示例 Linux / BSD $XDG_DATA_HOME
或$HOME/.local/share
/home/alice/.local/share
macOS $HOME/Library/Application Support
/Users/Alice/Library/Application Support
Windows %LOCALAPPDATA%
C:\Users\Alice\AppData\Local
_ZO_ECHO
- 设置为 1 时,
z
会在导航到匹配的目录之前打印该目录。
- 设置为 1 时,
_ZO_EXCLUDE_DIRS
- 从数据库中排除指定的目录。
- 这是作为一个 [globs][glob] 列表提供的,用操作系统特定的字符分隔:
操作系统 分隔符 示例 Linux / macOS / BSD :
$HOME:$HOME/private/*
Windows ;
$HOME;$HOME/private/*
- 默认设置为
"$HOME"
。
_ZO_FZF_OPTS
- 在交互式选择期间传递给 [fzf] 的自定义选项。请参阅 [
man fzf
][fzf-man] 获取选项列表。
- 在交互式选择期间传递给 [fzf] 的自定义选项。请参阅 [
_ZO_MAXAGE
- 配置[老化算法][algorithm-aging],限制数据库中的最大条目数。
- 默认设置为 10000。
_ZO_RESOLVE_SYMLINKS
- 设置为 1 时,
z
会在将目录添加到数据库之前解析符号链接。
- 设置为 1 时,
第三方集成
应用程序 | 描述 | 插件 |
---|---|---|
[aerc] | 电子邮件客户端 | 原生支持 |
[alfred] | macOS启动器 | [alfred-zoxide] |
[clink] | 改进版Windows cmd.exe | [clink-zoxide] |
[emacs] | 文本编辑器 | [zoxide.el] |
[felix] | 文件管理器 | 原生支持 |
[joshuto] | 文件管理器 | 原生支持 |
[lf] | 文件管理器 | 参见[wiki][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] |
[yazi] | 文件管理器 | 原生支持 |
[zabb] | 为路径查找最短可能的查询 | 原生支持 |
[zsh-autocomplete] | zsh的实时自动完成 | 原生支持 |