Coder Social home page Coder Social logo

pazi's Introduction

⚡ pazi ⚡ — A fast autojump helper

What is pazi?

Pazi is an autojump utility. That is to say, pazi remembers visited directories in the past and makes it easier to get back to them. A typical use of pazi might look like the following:

user@host ~ $ cd go/src/k8s.io/kubernetes
user@host ~/go/src/k8s.io/kubernetes $ cd /usr/src/linux

# The primary way to interact with pazi is via the 'z', zap-to-directory, alias
user@host /usr/src/linux $ z kuber
user@host ~/go/src/k8s.io/kubernetes $ # pazi zapped to the best match for 'kuber' that it remembers having been in
user@host ~/go/src/k8s.io/kubernetes $ z linux
user@host /usr/src/linux $

# If multiple items match a query, they can be interactively chosen between with '-i':
user@host /usr/src/linux $ cd ~/dev/linux
user@host ~/dev/linux $ z -i linux
2	0.7200000000000001	/usr/src/linux
1	0.9200000000000002	/home/user/dev/linux
> 1

user@host ~/dev/linux

How do I install pazi?

First, you need to install the pazi binary somewhere in your $PATH.

Prebuilt binaries are available on the releases page.

If you have the rust toolchain installed, you may alternatively compile from this repository or run cargo install pazi.

After installing the pazi binary, add the following to your .zshrc or .bashrc:

if command -v pazi &>/dev/null; then
  eval "$(pazi init zsh)" # or 'bash'
fi

Note: The init should be added after autoload -Uz compinit; compinit; has been called since pazi init zsh initializes completion for the z command.

Or if you are a fish user, add the following to your config.fish

if command -v pazi >/dev/null
  status --is-interactive; and pazi init fish | source
end

Finally, re-launch the shell and start zapping around :)

Using pazi with fzf

Pazi may be used with "fuzzy finders" like fzf as described here.

What makes pazi different from X

There are several autojump utilities, including fasd (or a better maintained fork), z, and autojump.

This implementation aims to be faster than any of the others (in no small part due to being in Rust), and also safer than fasd and z which, being shell-parsers written entirely in shell, are tricky to get right.

It's worth specifically noting that zoxide is another autojumper written in Rust, which has comparable performance (better performance for some benchmarks currently!).

For a more complete list of other autojump programs, refer to the table here.

So, is it faster?

Pazi is faster than the other autojump implementations it has been benchmarked against, excluding zoxide. The results of these benchmarks are documented here.

Status

Pazi is currently a work-in-progress. It mostly works, but it's not ready for a 1.0 release yet.

The data-format is likely stable (or will be migrated automatically), so now's a fine time to try it... but it's quite possible there are bugs and rough edges. Please do file issues or PRs as appropriate!

License

GPLv3

Contributions

Welcome and encouraged; unfortunately, no contributing.md yet.

pazi's People

Contributors

bors[bot] avatar cgwalters avatar dependabot-preview[bot] avatar dependabot-support avatar dependabot[bot] avatar euank avatar jonfk avatar konfekt avatar leotaku avatar linuxmercedes avatar rocha avatar samuelkarp avatar thomwiggers avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.