You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I love the z command. It lets me quickly jump to my favorite directories by typing very few keys.
But - sometimes I give in to my OCD and pause to wonder: how few keys can I get away with?
I can experiment, try different short versions. But this is hit-and-miss, and ironically, it can mess with the ranking and change what abbreviations can be used.
Presenting the solution: zabb
zabb is a command that tries to figure out the shortest memorable abbreviation of a directory that is usable by z to unambiguously jump to that directory.
By default, only abbreviations that start the same way as the directory name are returned.
USAGE:
zabb [<DIRECTORY>]
ARGS:
<DIRECTORY>
Directory to find z abbrevs for. If none is given, it defaults to the current working directory
FLAGS:
-s or --shortest
Allow abbreviations even if they do not start the same way as the directory name. (This will often find shorter abbreviations, but they may be less easy to remember)
-a or --all
List all (contiguous) abbreviations (implies -s)
-1 or --one-letter
List which directories each single-letter abbreviations in the alphabet will result in
-h or --help
Print help
Examples
~> ls -d Do*
Documents Downloads
~> zabb Downloads
d
~> z d
~/Downloads >cd~> zabb Documents
doc
~> z doc
~/Documents >cd~> zabb -s Documents
u
m
e
~> z u
~ /Documents>cd~> zabb -a Documents
u
m
e
t
oc
cu
um
[...]
Non-contiguous, i.e. space-separated, abbreviations are not looked for. So, in some fairly rare circumstances, the shortest abbreviations may not be found.
Currently zabb mainly supports the zoxide implementation of z. It works ok with z.lua, fasd and z, but may not find the shortest abbreviations for those. It may work for other implementations if they support the z -e command. I welcome PRs to expand zabb to other implementations.
Installation
zinit
This plugin is designed as a zinit module, but it's also
compatible with other zsh plugin managers.