Autojump2
Il y a peu j'avais fait un article sur un petit utilitaire IN DIS PEN SABLE. Autojump de son petit nom. Pour ceux qui ont oublié : Autojump permet de se déplacer rapidement dans l'arborescence en enregistrant les dossiers dans lesquels on va le plus souvent puis en les rendant accessible via la commande "j" suivi d'un pattern. Exemple, je suis à la racine de mon dossier (~/), il me suffit de taper "j kc" pour aller directement à "/home/soutade/projets/kc". Plus fort encore, si je tape "j k[tab]" la complétion me donne directement "j "/home/soutade/projets/kc"".
J'avais adapté Autojump à ma sauce pour qu'il étende la commande cd et j'avais aussi rajouté d'autres options pour gérer la base de données. Mise à part quelques corrections mineures, mes modifications n'ont pas été intégrées dans la version originale (différence de philosophie principalement).
Bref, ceci est un temps révolu. Ma nouvelle version d'Autojump est arrivé : Autojump2 (pour garder la référence à la version originale). Ce n'est pas un fork, ce n'est pas non plus une vraie suite puisque le code a été totalement ré écrit.
Autojump2 c'est donc plus fort, plus rapide et plus intelligent qu'Autojump*. Comme dans ma version modifiée, on n'utilise plus "j", mais directement "cd", on peut ajouter/retirer/modifier nos dossiers préférés à la base, les retrouver grâce à la complétion automatique. Et surtout grande nouveauté : lister automatiquement un ensemble de répertoire !! Toutes les fonctions de cd sont préservées et il n'y a plus un accès à la base pour chaque utilisation de cd (seulement quand c'est nécessaire).
Exemple tiré du README
Arborescence
proj/
|--- v1/
|--- v2/
|--- v3/
|--- branch/
|--- v2/
cd --add proj/v2
>>> '/home/soutade/proj/v2' correctly added to database
cd -a proj/v1
>>> '/home/soutade/proj/v1' correctly added to database
cd -a proj/\\*
>>> '/home/soutade/proj/*' correctly added to database
cd --add proj/branch/v2
>>> '/home/soutade/proj/branch/v2' correctly added to database
cd --list
/home/soutade/proj/branch/v2
/home/soutade/proj/v1
/home/soutade/proj/v2
/home/soutade/proj/*
>>> /home/soutade/proj/branch
>>> /home/soutade/proj/v1
>>> /home/soutade/proj/v2
>>> /home/soutade/proj/v3
cd v2
/home/soutade/proj/branch/v2
cd v[tab][tab][tab]
v__1__/home/soutade/proj/branch/v2
v__2__/home/soutade/proj/v1
v__3__/home/soutade/proj/v2
v__4__/home/soutade/proj/v3
cd v__2
/home/soutade/proj/v1
cd v[tab][tab][tab]
v2__1__/home/soutade/proj/branch/v2
v2__2__/home/soutade/proj/v2
cd v2__2
/home/soutade/proj/v2
*Aucun benchmark n'a été réalisé