zoxide: tips and tricks
zoxide is a smart and fast alternative to cd that learns your directory usage patterns and allows you to jump to directories quickly. It’s one of my favorite command-line tools and it’s an essential part of my workflow.
Here are some tips and tricks to get the most out of zoxide:
Normally you’d use
zto triggerzoxide, but pressingzis not super convenient. That’s why I like to usejinstead. You can set this up by adding the following to your shell configuration file (e.g.,.bashrc,.zshrc):1
alias j='z'
It took me a while to figure that z wasn’t the optimal keybinding for zoxide and I’m really happy with j.
If you have
fzfinstalled, thezicommand can be used to interactively select a directory to jump to.ziis another thing that’s not super easy to type, so I suggest using thejjalias instead:1
alias jj='zi'
zoxidewas inspired byzandautojump, but unlike them it’s a complete replacement forcd. That’s why it’s not a bad idea to simply aliascdtoz:1
alias cd='z'
Note that zoxide uses cd internally, so switching fully to it won’t mess with any of Fish’s internal directory stack. (e.g. dirh and cdh)
If you have multiple directories with similar names you can use SPACE to trigger smart completion for your options:
1
z mydir<SPACE>
This will present the matching candidates (using fzf if present), and you can select one to jump to it.
If you’re a Fish user (like me), you can get nice TAB completions by installing the following Fish plugin:
1
fisher install icezyclon/zoxide.fish
Now try the following:
1
z mydir<TAB>
You can read more about the plugin here.
And that’s a wrap! Even though I do all of the above, I think the first two items are the most important. j and jj are very easy to type and cover all of my use-cases beautifully. If you have any other tips or tricks for zoxide, feel free to share them in the comments below!
That’s all I have for you today! Keep hacking!