Today I once again stumbled upon a painful problem of rupa/z which I was
Using since forever. The problem is that once you delete a folder, z will
try to cd into it, but then it fails:
The directory 'nonxistent' does not exist.
I tried to poke around the GitHub issues and pull-request but did not find
something addressing this problem. What is mote frustrating that z it
itself
does not allow to
remove specified path from it's database, only the current working
directory, which is unfortunate if such directory does not exist.
The only solutions I found is either recreate the whole path that, cd into
it and then run z -x or go into the database file and remove the entry
manually. Both methods suck, the tools should help me, not stand me in the
way. It was a great tool and it served me well, but it's time had come.
Enter zoxide#
Zoxide from ajeetdsouza/zoxide is one of the many modern compatible
replacements, this one written in rust, which could for instance make it
fast. What I like about it however, that it actively manages it's database
and does not try to cd into directory that was a highest ranking match in
the past, but was deleted since. It can also import my old z database
even with the non-existent entries and takes care of them, meaning the
switch is absolutely painless. Here's what I had to do:
fisher remove jethrokuan/z
brew install zoxide
fisher install kidonng/zoxide.fish
zoxide import --from=z /Users/peterbabic/.local/share/z/data
Nothing else was needed. After a few tests via newly available z I found
that nothing seemed broken. So I did a final look at the database of
zoxide via zi meaning "zoxide interactive" (requires fzf) and decided
to bid farewell to last remnants of the z on the system by removing it's
old database directory:
rm -rf /Users/peterbabic/.local/share/z
Enjoy!