zoxide-romanized is the multi-language romanization edition of zoxide. It provides the shared romanizer framework. Chinese pinyin is the first and currently only implemented language, with full-pinyin and initials matching. The design allows additional language romanizers to be added independently.
z shichangmatches市场by full pinyin.z scmatches市场by pinyin initials.z sy2matches实验2, preserving the numeric suffix.- Polyphonic readings are considered for both full pinyin and initials.
The installed executable and shell command remain zoxide / z.
Getting started • Installation • Configuration • Integrations
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 (bash 4.4+/fish/zsh only)Read more about the matching algorithm here.
The primary multi-language crate currently enables pinyin by default:
cargo install zoxide-romanized --lockedzoxide-pinyin is the Chinese-only edition. It disables the primary crate's
default features and enables only pinyin, so future language features in the
primary crate will not be included:
cargo install zoxide-pinyin --lockedInstall only one crate. Both install the executable named zoxide. If Cargo
reports that an existing zoxide binary would be overwritten, use
cargo install zoxide-romanized --locked --force to replace it. Prebuilt builds
from this fork, when available, are listed on the Lineance releases
page. On Unix, the installer fetches the matching fork build:
curl -sSfL https://raw.githubusercontent.com/Lineance/zoxide/main/install.sh | shThe shell setup remains the usual zoxide init command. Your existing
zoxide shell configuration and database are reused automatically because this
fork uses the same executable name and data directory. Legacy db.zo databases
are migrated to db.txt on first read; no manual conversion is needed.
-
Setup zoxide on your shell
To start using zoxide, add it to your shell.
Bash
Add this to the end of your config file (usually
~/.bashrc):eval "$(zoxide init bash)"
Elvish
Add this to the end of your config file (usually
~/.elvish/rc.elv):eval (zoxide init elvish | slurp)
Note: zoxide only supports elvish v0.18.0 and above.
Fish
Add this to the end of your config file (usually
~/.config/fish/config.fish):zoxide init fish | source
Nushell
Add this to the end of your env file (find it by running
$nu.env-pathin Nushell):zoxide init nushell | save -f ~/.zoxide.nu
Now, add this to the end of your config file (find it by running
$nu.config-pathin Nushell):source ~/.zoxide.nu
Note: zoxide only supports Nushell v0.106.0+.
PowerShell
Add this to the end of your config file (find it by running
echo $profilein PowerShell):Invoke-Expression (& { (zoxide init powershell | Out-String) })
Tcsh
Add this to the end of your config file (usually
~/.tcshrc):zoxide init tcsh > ~/.zoxide.tcsh source ~/.zoxide.tcsh
Xonsh
Add this to the end of your config file (usually
~/.xonshrc):execx($(zoxide init xonsh), 'exec', __xonsh__.ctx, filename='zoxide')
Zsh
Add this to the end of your config file (usually
~/.zshrc):eval "$(zoxide init zsh)"
For completions to work, the above line must be added after
compinitis called. You may have to rebuild your completions cache by runningrm ~/.zcompdump*; compinit.Any POSIX shell
Add this to the end of your config file:
eval "$(zoxide init posix --hook prompt)"
Note: [Warp] provides its own completions, so
Space+Tabcompletions are not supported there. -
Install fzf (optional)
fzf is a command-line fuzzy finder, used by zoxide for completions / interactive selection. It can be installed from here.
Note: The minimum supported fzf version is v0.51.0.
-
Import your data (optional)
If you currently use any of these plugins, you may want to import your data into zoxide. The data file is auto-detected using each plugin's standard conventions.
zoxide import <plugin>
Plugin Command atuin zoxide import atuinautojump zoxide import autojumpfasd zoxide import fasdz zoxide import zz.lua zoxide import z.luazsh-z zoxide import zsh-z
When calling zoxide init, the following flags are available:
-
--cmd- Changes the prefix of the
zandzicommands. --cmd jwould change the commands to (j,ji).--cmd cdwould replace thecdcommand.
- Changes the prefix of the
-
--hook <HOOK>-
Changes how often zoxide increments a directory's score:
Hook Description noneNever promptAt every shell prompt pwd(default)Whenever the directory is changed
-
-
--no-cmd- Prevents zoxide from defining the
zandzicommands. - These functions will still be available in your shell as
__zoxide_zand__zoxide_zi, should you choose to redefine them.
- Prevents zoxide from defining the
Environment variables1 can be used for configuration. They must be set before
zoxide init is called.
-
_ZO_DATA_DIR-
Specifies the directory in which the database is stored.
-
The default value varies across OSes:
OS Path Example Linux / BSD $XDG_DATA_HOME/zoxideor$HOME/.local/share/zoxide/home/alice/.local/share/zoxidemacOS $HOME/Library/Application Support/zoxide/Users/Alice/Library/Application Support/zoxideWindows %LOCALAPPDATA%\zoxideC:\Users\Alice\AppData\Local\zoxide
-
-
_ZO_ECHO- When set to 1,
zwill print the matched directory before navigating to it.
- When set to 1,
-
_ZO_EXCLUDE_DIRS-
Excludes the specified directories from the database.
-
This is provided as a list of globs, separated by OS-specific characters:
OS Separator Example Linux / macOS / BSD :$HOME:$HOME/private/*Windows ;$HOME;$HOME/private/* -
By default, this is set to
"$HOME".
-
-
_ZO_FZF_OPTS -
_ZO_MAXAGE- Configures the aging algorithm, which limits the maximum number of entries in the database.
- By default, this is set to 10000.
-
_ZO_RESOLVE_SYMLINKS- When set to 1,
zwill resolve symlinks before adding directories to the database.
- When set to 1,
zoxide-romanized is the multi-language edition and provides the shared
romanizer framework. Pinyin is currently the only implemented language and
is enabled by default.
ASCII letters and digits can be mixed in a romanized query (for example, sy2
matches 实验2). Future language romanizers can be exposed as separate Cargo
features.
zoxide-pinyin is a focused Chinese edition. It depends on
zoxide-romanized with default features disabled and enables only the pinyin
feature. This keeps the pinyin package independent of future romanizer features.
Both packages install the same zoxide executable; install only one.
| Application | Description | Plugin |
|---|---|---|
| aerc | Email client | Natively supported |
| alfred | macOS launcher | alfred-zoxide |
| clink | Improved cmd.exe for Windows | clink-zoxide |
| emacs | Text editor | zoxide.el |
| felix | File manager | Natively supported |
| joshuto | File manager | Natively supported |
| lf | File manager | See the wiki |
| nnn | File manager | nnn-autojump |
| ranger | File manager | ranger-zoxide |
| raycast | macOS launcher | raycast-zoxide |
| rfm | File manager | Natively supported |
| sesh | tmux session manager |
Natively supported |
| superfile | File manager | Natively supported |
| telescope.nvim | Fuzzy finder for Neovim | telescope-zoxide |
| tmux-session-wizard | tmux session manager |
Natively supported |
| tmux-sessionx | tmux session manager |
Natively supported |
| vim / neovim | Text editor | zoxide.vim |
| xplr | File manager | zoxide.xplr |
| xxh | Transports shell configuration over SSH | xxh-plugin-prerun-zoxide |
| yazi | File manager | Natively supported |
| zabb | Finds the shortest possible query for a path | Natively supported |
| zesh | zellij session manager |
Natively supported |
| zsh-autocomplete | Realtime completions for zsh | Natively supported |
