I feel like with a lot of these kinds of tools, if I have to actually actively use them, I forget that they exist ('z'[0] ended up being like this for me) and eventually remove them, but something that directly replaces something I use regularly (but hate the UX of) is perfect for me.
Another bit that helps is that I'm not having to learn/remember something new that I'll only have on my laptop. I'll continue to ctrl+R and get a nicer experience, but if I'm ssh'ed into some random box without fzf, ctrl+R will still work, just with a worse experience.
It uses some sort of substring/edit distance matching and LRU heuristics, and it works almost every time. Sometimes it feels like it's reading my mind.
Not really that big of a deal, I just like tracking command line apps naming because it is an interesting exercise of being short, intuitive, and unique. When you decide a single letter is your name, surely you are going to run into this.
1. https://github.com/zakuro9715/z 2. https://github.com/skywind3000/z.lua 3. https://github.com/ajeetdsouza/zoxide 4. https://github.com/rupa/z
The methods listed in the article are almost certainly better if you know exactly which directory you need to go to (like a specific project repo, your bin etc) however often you don’t!
Another interesting tool is Z: https://github.com/rupa/z