Depending on you day job, or development habits, you may need to jump to multiple projects to get your work done.
At first, you may start with some organization, say every project, every library for the client Partial, goes to
~/Development/partial. Same for HackSoft at
~/Development/hack, etc. While having some organization helps, we still need to get to those projects. Those days, work on
~/Development/gloat a lot.
This means cd'ing to those paths, every time I open a new terminal. It may not seem like much typing, but repeating this task lot's of times a day, you may feeling this itching sensation deep down inside. Irritation, laziness if you will.
One solution is to say okay, I'm gonna make an alias for this.
alias pc="cd ~/Development/partial/2017.partialconf.com" alias gl="cd ~/Development/gloat"
But then, another project that needs more attention pops up and you're left without a shortcut. After a while, adding those shortcuts becomes a chore: some of them are out of date, some no longer relevant.
Then, you may say, autojump is nice? While, yes it is really nice, god forbid you make a typo. Oh no, you have to type
j 2017.partialconf.com every freaking time. Exactly. No
j 2017.partailcofn.com, you watch your fingers!
Once you install and integrate jump into your shell, it builds an internal database of paths as you
cd to them. Then, it scores them by relevance and tries to find the best match for the shortest input. Say, you really do spend a lot of time at
2017.partailconf.com those days. You can say
j pc and jump will figure this out. How? It will look for the most visited directory has the letter
p and then the letter
c in its path. This is really powerful and opens up a lot of possibilities. Watch this!
You may enter the very same directory with:
j conf or
j part/17 even. However, if you say
j partial it will be smart enough to figure out the exact match of
~/Development/partial. While the fuzzy matching is really useful, if you made the effort to type something exactly, jump will figure it out. And that's the magic of it! Once you start using jump, it just figures it out.
A new version of Jump is now available - https://github.com/gsamokovarov/jump/releases/tag/v0.18.0