I’ve been using one or another autojumper for the better part of 8 years, and at this point I’ve come to rely on them as part of my workflow.
Unfortunately, a lot of them have a lot of problems. Autojump is in python and fairly slow.
In addition, it’s less featureful than fasd (really, fasd has tons of cool features).
Despite fasd being the most featureful, it is some truly terrifying shell and has had some unsafe eval issues in the past.
Which brings me to what I’m actually commenting about: I wrote my own autojumper called pazi and switched to it a few months back. It still has a ways to go before it’s as featureful as fasd, but it’s already faster than all the others, and it’s in rust so there’s no chance of an accidental “eval” blowing up in my face.
If you want an autojumper, my biased recommendation is to try pazi :)
There’s no need to implement the most basic tcp scanning these days. Just use https://github.com/robertdavidgraham/masscan
That’ll be a damn sight quicker than the code in this blog, and once you have the list of the ips listening on that port at all, a more specialized request (e.g. the RANDOMKEY here) can be done. I assume the author didn’t know about masscan since there’s no reference to it.
I never could get into these jump tools. zsh with
auto_cdandcdpathis good enough for me. I just typedotf<Tab><Enter>, it completes todotfiles/and cds into~/src/github.com/myfreeweb/dotfiles(because that…myfreeweb/directory is on the cdpath).Another really useful thing about zsh autocompletion is that it matches on any portion of the directory name. So, for example, when I had multiple projects like
project-server,project-hq, andproject-mobile, I only needed to type eg-mob<Tab>and it would autocomplete toproject-mobile. It was very convenient because I switched between these three directories all the time.My favorite is the deep path expansion, e.g.
~/s/g/m/dotto~/src/github.com/myfreeweb/dotfiles. I really miss that in other applications (e.g. neovim)I use that a fair bit as well, it’s a helpful feature.
Autojump utilities, such as fasd and pazi (mine), do that as well. Some of them (fasd, not pazi) even have shell autocomplete too so
z hqwould go toproject-hqif that were frecent.One other cool feature they have which tab-completion sorta mimics is picking from items in a list. With those,
z -i projectwould give an interactive menu of all items with “project”, while with tab completion, double-mashing tab does a similar thing.If
auto_cdis good enough for you, that’s totally fine, I just want to also explain that autojump utilities also do have tab completion and partial matching of path partial parts too.One of my favorite features is
auto_pushd. It combines nicely withauto_cd. Zsh is remarkably well polished.