My new favorite utility: autojump
Like any developer, I have amassed an impressive collection of directory trees
both broad and deep. Navigating these trees became increasingly cumbersome,
and setting CDPATH
, using auto-completion, and working with the readline
history search alleviated this only somewhat.
Enter autojump
, from the package of the same name.
Whatever magic it uses is unbelievably effective. I estimate that in at least
95% of my cases, typing j <name-fragment>
changes to the directory I
was actually thinking of.
Say I'm working on package scikit-learn
. My clone of the Salsa repo is
in ~/code/pkg-scikit-learn/scikit-learn
. Changing to that directory is
trivial, I only need to specify a name fragment:
$ j sci /home/christian/code/pkg-scikit-learn/scikit-learn christian@workstation:~/code/pkg-scikit-learn/scikit-learn
But what if I want to work on scikit-learn upstream, to prepare a patch, for
example? That repo has been cloned to ~/code/github/scikit-learn
. No
problem at all, just add another name fragment:
$ j gi sci /home/christian/code/github/scikit-learn christian@workstation:~/code/github/scikit-learn
The magic, however, is most evident with directory trees I rarely enter. As in:
I have a good idea of the directory name I wish to change to, but I don't
really recall its exact name, nor where (in the tree) it is located. I used
to rely on autocomplete to somehow get there which can involve hitting the
[TAB]
key far too many times, and falling back to find
in the worst
case, but now, autojump
always seems gets me there on first try.
I can't believe that this has been available in Debian for 10 years and I only discovered it now.