• Stars
    star
    161
  • Rank 233,470 (Top 5 %)
  • Language
    Rust
  • License
    GNU General Publi...
  • Created about 7 years ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An autojump "zap to directory" helper

⚑ 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.

More Repositories

1

node-noop

Does nothing
JavaScript
128
star
2

rms.sexy

The source code for the sexiest .sexy domain
Rust
64
star
3

snailquote

A shell-inspired escape+unescape library for strings
Rust
30
star
4

go-kmsg-parser

A simpler parser for the /dev/kmsg format
Go
30
star
5

node-parse-numeric-range

Parses expressions like 1-10,20-30. Returns an energetic array.
JavaScript
22
star
6

synapse-password-reset

A companion tool for https://github.com/euank/synapse-backregister to manage password resets
Rust
11
star
7

node-oiio

Node wrapper for OpenImageIO
JavaScript
6
star
8

sprigcli

A CLI interface to `text/template` with the sprig library sprinkled in. Inspired by helm, but without helm.
Go
6
star
9

nixek-overlay

Just some nix packages and stuff
Nix
5
star
10

twitter-image-helper

A webextension to make opening twitter images easier from twitter-web
JavaScript
4
star
11

go-errstats

Go program to print err-check statistics about Go code
Go
4
star
12

gotmpl

The simplest templating possible, in library and cli form
Go
4
star
13

docker-sl

A dockerfile for gentoo's (old) sl, the best sl varient
Makefile
4
star
14

synapse-backregister

Go
4
star
15

yaml2nix

Nix
3
star
16

node-image-dedupe

Image Deduplication in NodeJS
JavaScript
3
star
17

Super-Simple-S3Paste

A simple, entirely client-side, paste-site using s3; serverless before serverless was cool
JavaScript
3
star
18

kanbasnat

A program to link a Google Hangouts chat with an IRC channel
JavaScript
3
star
19

dnsbl-rs

A DNSBL library and cli tool written in rust.
Rust
3
star
20

include-repo

A rust crate to help with AGPL compliance! It implements the `include_repo!` macro
Rust
3
star
21

node-opendirectory-size

Calculates the size of an open directory
JavaScript
3
star
22

ek8s

A bunch of pod yamls and helm charts for stuff I run or have run on Kubernetes
Smarty
3
star
23

take_while_with_failure.rs

A rust iterator akin to `take_while` but with the failing element
Rust
3
star
24

neodotfiles

A new iteration of my dotfiles
Nix
3
star
25

ppmview

A simple ppm viewer
C
2
star
26

znc-timewarp

Let's do the time warp again
Ruby
2
star
27

koebot

A music bot for discord
Rust
2
star
28

ssh-hangman

An ssh server that plays hangman
Go
2
star
29

EuIrcBot-core

The central RPC server for new EuIrcBot. Status: WIP
JavaScript
2
star
30

node-newegg-api

A newegg api wrapper in nodejs
JavaScript
2
star
31

snailescape.js

Javascript library to perform shell-like splitting and escaping of strings while respecting quoting
JavaScript
2
star
32

libvirt-rust

Fork of https://github.com/atmosphre/libvirt-rs
Rust
1
star
33

DMJam

todo
1
star
34

plug-dj-rekey

Small extension for swapping out plug.dj youtube apikeys
JavaScript
1
star
35

esk.email-html

The html landing page for esk.email ... WIP
HTML
1
star
36

SudokraftConfig

Some simple scripts for maintaining a minecraft server. Expect hackery to abound.
Shell
1
star
37

v6plus-tun

A shell script, but in rust, to perform "v6 plus" ipv4 tunnel setup using configuration derived with map-e
Nix
1
star
38

tokio-libvirt

Libvirt rpc using tokio
Rust
1
star
39

EuTracker

Simple nodejs torrent tracker
JavaScript
1
star
40

k8syaml2json

Converts kubernetes yaml inputs into kubernetes json outputs
Go
1
star
41

wait-what.syste.md

JavaScript
1
star
42

Branch-and-Bound

An (in progress) branch and bound of the TSP in JS
JavaScript
1
star
43

docker-syncplay-server

Dockerfile for a syncplay server
Shell
1
star
44

parse-numeric-range-rb

Ruby library to parse numeric ranges
Ruby
1
star
45

docker-nginscript

A dockerfile for nginscript, euank/nginx-nginscript on Dockerhub
Makefile
1
star
46

go-bj-rpc

A bidirectional JSON RPC implementation
Go
1
star
47

kitchen-sink

The kitchen sink of misc junk
Nix
1
star
48

nixos-ami-upload

Tool to upload NixOS Amazon Machine images
Rust
1
star
49

whatismyip

Yet another "what is my ip?" webpage / API thing.
Nginx
1
star
50

openresty-playbook

A playbook for setting up the OpenResty nginx bundle on CentOS
1
star
51

alexa-parrot

A simple alexa skill to tweet what it hears
Go
1
star
52

aws-sdk-rust

An attempt at implementing some aws stuff in rust. You should use Rosoto instead https://github.com/rusoto/rusoto
Rust
1
star
53

exec-cmd

Rust
1
star
54

error.technology

An error API
Go
1
star
55

stage1_glide

A laughably bad stage1 for rkt
Rust
1
star
56

sinit-muscl-docker-builder

A Dockerfile for building sinit statically linked with musl
Shell
1
star
57

gunpowder-memhog

A simple memory hog program in rust
Rust
1
star
58

meruplaybook

A playbook for setting up email on a server; Work in Progress
SQL
1
star
59

qQqq

A bad joke of a programming language. It's pronounced "Qfrzkkndqy"
C
1
star