zoxide : le remplaçant de cd qui apprend vos habitudes

Combien de fois par jour tapez-vous cd ~/Dev/mon-projet/src/components ? zoxide mémorise les répertoires que vous visitez et vous y ramène en tapant seulement quelques lettres caractéristiques.

Ce que fait zoxide

zoxide maintient une base de données de vos répertoires visités, pondérée par la fréquence et la récence d’accès (algorithme “frecency”). La commande z remplace cd et cherche dans cette base le répertoire qui correspond le mieux à ce que vous tapez.

# La première fois, vous naviguez normalement
cd ~/Dev/sky-info-tech.com

# La prochaine fois, depuis n'importe où
z sky
# → ~/Dev/sky-info-tech.com

Plus vous visitez un répertoire, plus son score monte et plus il remonte dans les résultats.

Installation

# macOS
brew install zoxide

# Linux (Debian/Ubuntu)
curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh

# Cargo (Rust)
cargo install zoxide

Ajoutez ensuite l’initialisation à votre shell :

# bash (~/.bashrc)
eval "$(zoxide init bash)"

# zsh (~/.zshrc)
eval "$(zoxide init zsh)"

# fish (~/.config/fish/config.fish)
zoxide init fish | source

# PowerShell ($PROFILE)
Invoke-Expression (& { (zoxide init powershell | Out-String) })

Utilisation

# Navigation basique
z projets        # Va dans ~/Dev/projets
z sky            # Va dans ~/Dev/sky-info-tech.com
z comp           # Va dans ~/Dev/mon-site/src/components

# Plusieurs mots-clés pour affiner
z dev compo      # Va dans ~/Dev/mon-site/src/components

# Mode interactif avec fzf (si installé)
zi               # Affiche les résultats dans fzf pour choisir

# Afficher le chemin sans y aller
z -l projets     # Liste les correspondances avec leur score

Alias recommandé

Certains préfèrent garder cd pour la navigation habituelle et utiliser z pour les raccourcis. D’autres remplacent complètement cd :

# Dans votre .bashrc / .zshrc
eval "$(zoxide init bash --cmd cd)"
# `cd` devient zoxide, l'ancien cd est accessible via `builtin cd`

Intégration avec fzf

Avec fzf installé, zi ouvre une interface de sélection interactive parmi les répertoires les plus visités :

zi
# Affiche une liste fuzzy de vos dossiers — choisissez avec les flèches

C’est particulièrement utile quand plusieurs dossiers correspondent à votre recherche.

+ Les points forts

  • Apprentissage automatique — plus vous l’utilisez, plus il devient précis. Le score frecency favorise ce que vous faites vraiment
  • Zéro friction — remplace cd sans changer vos habitudes, juste en les accélérant
  • Multi-shell — fonctionne dans bash, zsh, fish, PowerShell, xonsh, nushell
  • Léger — un seul binaire Rust, consommation mémoire négligeable
  • Compatible avec les chemins absolus et relatifsz /chemin/absolu fonctionne aussi

- Les points faibles

  • Base de données vide au démarrage — les premières heures, zoxide ne sert à rien. Il faut naviguer normalement pour alimenter sa base
  • Ambiguïté avec des noms courants — taper z src peut mener au mauvais dossier si vous avez beaucoup de répertoires src/. L’option -l permet de voir tous les candidats
  • Ne remplace pas la complétion classique — pour explorer un répertoire inconnu avec Tab, cd reste plus adapté
  • Base de données à maintenir — si vous supprimez des dossiers, ils restent dans la base jusqu’à nettoyage manuel (zoxide clean)

Comparaison avec autojump et fasd

zoxide s’inspire de autojump et fasd, deux outils similaires plus anciens. Les avantages de zoxide sur ces derniers : binaire unique (pas de Python), démarrage instantané, algorithme frecency plus précis, et maintenance active.

En résumé

zoxide est un de ces outils qu’on installe, qu’on oublie, et qu’on remarque seulement le jour où on travaille sur une machine qui ne l’a pas. L’installation prend deux minutes et le gain quotidien s’accumule sans effort.


Voir aussi :

  • fzf — recherche floue interactive dans le terminal
  • bat — visualiser les fichiers avec coloration syntaxique