A smarter cd command. Supports all major shells.
Go to file
2020-03-08 08:37:11 +05:30
.github/workflows Add GitHub Action for automating release builds 2020-03-05 21:04:06 +05:30
src Add README 2020-03-08 08:14:54 +05:30
.gitignore Initial commit 2020-03-05 20:06:58 +05:30
Cargo.toml Prepare for upgrade to v0.1.1 2020-03-08 08:24:43 +05:30
install.sh Make install.sh executable 2020-03-08 08:37:11 +05:30
LICENSE Initial commit 2020-03-05 20:06:58 +05:30
README.md Add README 2020-03-08 08:14:54 +05:30
zoxide.plugin.zsh Add check for precmd_function before adding to it 2020-03-08 08:15:02 +05:30

zoxide

crates.io

A cd command that learns your habits

Introduction

zoxide is a new cd alternative inspired by z and z.lua. It keeps track of the directories you use most frequently, and uses a ranking algorithm to navigate to the best match.

Examples

z foo       # cd to top directory matching foo
z foo bar   # cd to top directory matching foo and bar

z foo/      # can also cd into actual directories

zi foo      # cd with interactive selection using fzf

zq foo      # echo the best match, don't cd

za /foo     # add /foo to the database
zr /foo     # remove /foo from the database

Getting started

Installing zoxide

If you have Rust, this should be as simple as:

cargo install zoxide

Otherwise, try the install script:

curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/ajeetdsouza/zoxide/master/install.sh | sh

If you want the interactive fuzzy selection feature, you will also need to install fzf.

Adding zoxide to your shell

zsh

If you use a package manager, installation should be as simple as adding ajeetdsouza/zoxide to your configuration. If you'd rather not use a package manager, simple include the following in your .zshrc:

_zoxide_precmd() {
    zoxide add
}

precmd_functions+=_zoxide_precmd

z() {
    if [ $# -ne 0 ]; then
        _Z_RESULT=$(zoxide query "$@")
        case $_Z_RESULT in
            "query: "*)
                cd "${_Z_RESULT:7}"
                ;;
            *)
                echo "${_Z_RESULT}"
                ;;
        esac
    fi
}

alias zi="z -i"

alias za="zoxide add"
alias zq="zoxide query"
alias zr="zoxide remove"

Configuration

Environment variables

  • $_ZO_DATA: sets the location of the database (default: ~/.zo)
  • $_ZO_MAXAGE: sets the maximum total rank after which entries start getting deleted