zoxide README

The project's README from github.com/ajeetdsouza/zoxide. As one markdown file: README.md.

Special thanks to:

Sponsored by Warp
Warp, built for coding with multiple AI agents.
Available for macOS, Linux, and Windows.
Visit warp.dev to learn more.
Sponsored by Recall.ai
Processing over 3TB/s of video at peak load,

zoxide logo
zoxide

crates.io [Downloads][releases] Built with Nix

zoxide is a smarter cd command, inspired by z and autojump.

It remembers which directories you use most frequently, so you can "jump" to them in just a few keystrokes.
zoxide works on all major shells.

Getting started • Installation • Configuration • Integrations

Getting started

![Tutorial][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 (bash 4.4+/fish/zsh only)

Read more about the matching algorithm here.

Installation

zoxide can be installed in 4 easy steps:

  1. Install binary

    zoxide runs on most major platforms. If your platform isn't listed below, please [open an issue][issues].

    Linux / WSL

    The recommended way to install zoxide is via the install script:

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

    Or, you can use a package manager:

    Distribution Repository Instructions
    Any crates.io cargo install zoxide --locked
    Any conda-forge conda install -c conda-forge zoxide
    Any [guix] guix install zoxide
    Any [Linuxbrew] brew install zoxide
    Any [nixpkgs] nix-env -iA nixpkgs.zoxide
    Alpine Linux 3.13+ Alpine Linux Packages apk add zoxide
    Arch Linux Arch Linux Extra pacman -S zoxide
    Debian[^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 OS[^1] apt install zoxide
    Raspbian[^1] [Raspbian Packages] apt install zoxide
    Rhino Linux [Pacstall Packages] pacstall -I zoxide-deb
    Slackware 15.0+ [SlackBuilds] [Instructions][slackbuilds-howto]
    Solus [Solus Packages] eopkg install zoxide
    Ubuntu[^1] [Ubuntu Packages] apt install zoxide
    Void Linux [Void Linux Packages] xbps-install -S zoxide
    macOS

    To install zoxide, use a package manager:

    Repository Instructions
    crates.io cargo install zoxide --locked
    [Homebrew] brew install zoxide
    conda-forge conda install -c conda-forge zoxide
    [MacPorts] port install zoxide
    [nixpkgs] nix-env -iA nixpkgs.zoxide

    Or, run this command in your terminal:

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

    zoxide works with PowerShell, as well as shells running in Cygwin, Git Bash, and MSYS2.

    The recommended way to install zoxide is via winget:

    winget install ajeetdsouza.zoxide
    

    Or, you can use an alternative package manager:

    Repository Instructions
    crates.io cargo install zoxide --locked
    Chocolatey choco install zoxide
    conda-forge conda install -c conda-forge zoxide
    [Scoop] scoop install zoxide

    If you're using Cygwin, Git Bash, or MSYS2, you can also use the install script:

    curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh
    
    BSD

    To install zoxide, use a package manager:

    Distribution Repository Instructions
    Any crates.io cargo install zoxide --locked
    DragonFly BSD DPorts pkg install zoxide
    FreeBSD [FreshPorts] pkg install zoxide
    NetBSD [pkgsrc] pkgin install zoxide

    Or, run this command in your terminal:

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

    To install zoxide, use a package manager:

    Repository Instructions
    [Termux] pkg install zoxide

    Or, run this command in your terminal:

    curl -sS https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | bash
    
  2. 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-path in Nushell):

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

    Now, add this to the end of your config file (find it by running $nu.config-path in 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 $profile in 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 compinit is called. You may have to rebuild your completions cache by running rm ~/.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+Tab completions are not supported there.

  3. Install fzf (optional)

    [fzf] is a command-line fuzzy finder, used by zoxide for completions / interactive selection. It can be installed from [here][fzf-installation].

    Note: The minimum supported fzf version is v0.51.0.

  4. 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 atuin
    autojump zoxide import autojump
    fasd zoxide import fasd
    z zoxide import z
    z.lua zoxide import z.lua
    zsh-z zoxide import zsh-z

Configuration

Flags

When calling zoxide init, the following flags are available:

Environment variables

Environment variables[^2] can be used for configuration. They must be set before zoxide init is called.

Third-party integrations

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][lf-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][superfile-plugins]
[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

[^1]: Debian / Ubuntu derivatives update their packages very slowly. If you're using one of these distributions, consider using the install script instead.

[^2]: If you're not sure how to set an environment variable on your shell, check out the [wiki][wiki-env].

zoxide (ajeetdsouza/zoxide)

Searching Database…

40.2K ·GitHub
Что это?zoxide — это умная команда cd, которая запоминает, какие директории вы используете чаще всего, чтобы перейти к ним всего за несколько нажатий клавиш.
Это отдельное приложение или плагин для оболочки, который я добавляю в свой конфиг?Это небольшой бинарный файл на Rust плюс хук для оболочки: вы устанавливаете бинарный файл zoxide, затем добавляете строку инициализации в конфиг оболочки, и он определяет команды z и zi.
Как мне установить и настроить это?Установите бинарный файл через install-скрипт или менеджер пакетов (cargo, brew, winget, аналоги apt и т. д.), затем добавьте строку инициализации zoxide для вашей оболочки (bash, zsh, fish, PowerShell, nushell, elvish, xonsh, tcsh или любой POSIX-совместимой оболочки) в файл конфигурации.
Нужен ли мне fzf или что-то ещё, чтобы это работало?Базовый переход 'z' работает только с бинарным файлом и хуком оболочки; fzf нужен лишь как необязательная зависимость для интерактивного выбора и автодополнения (минимальная версия v0.51.0).
Могу ли я перенести свою существующую историю autojump или fasd?Да, zoxide может импортировать данные из atuin, autojump, fasd, z, z.lua и zsh-z с помощью команды 'zoxide import ', автоматически определяя файл данных каждого плагина.
Какие оболочки и платформы он действительно поддерживает?Он работает в bash, zsh, fish, PowerShell, nushell, elvish, xonsh, tcsh и любой POSIX-совместимой оболочке, а пакеты доступны для Linux, macOS, Windows, BSD и Android.
Как zoxide решает, в какую директорию перейти по заданному запросу?Он использует алгоритм сопоставления на основе «frecency» (сочетания частоты и недавности использования), который оценивает директории и выбирает лучшее совпадение для введённых фрагментов запроса.
Могу ли я изменить названия команд z и zi?Да, флаг --cmd, передаваемый в zoxide init, позволяет переименовать команды: например, --cmd j даст вам j и ji, а --cmd cd полностью заменит cd.
Интегрируется ли он с другими инструментами, например, файловыми менеджерами или редакторами?Да, zoxide имеет нативные или основанные на плагинах интеграции с такими инструментами, как yazi, ranger, nnn, Neovim/vim, менеджеры сессий tmux, Alfred, Raycast и другими.
Как мне не дать базе данных расти бесконечно?Переменная окружения ZOMAXAGE управляет алгоритмом старения, который ограничивает количество записей в базе данных; по умолчанию это 10000.
Size
4.9 MB
Stars
40.2K
Age
6y
Commits · 90 Days