Une commande cd plus intelligente qui apprend vos répertoires les plus utilisés et vous permet d’y accéder avec seulement quelques touches. Utilise un algorithme de “frecency” combinant fréquence et récence des visites.
| Plateforme | Commande |
|---|
| macOS (Homebrew) | brew install zoxide |
| Ubuntu/Debian | sudo apt install zoxide |
| Arch Linux | sudo pacman -S zoxide |
| Fedora/RHEL | sudo dnf install zoxide |
| Windows (Winget) | winget install ajeetdsouza.zoxide |
| Windows (Scoop) | scoop install zoxide |
| Windows (Chocolatey) | choco install zoxide |
| Cargo (Toutes plateformes) | cargo install zoxide --locked |
| Conda | conda install -c conda-forge zoxide |
| Nix | nix-env -iA nixpkgs.zoxide |
| Script d’installation | curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh |
Ajoutez la ligne appropriée à votre fichier de configuration shell :
| Shell | Fichier de Configuration | Commande à Ajouter |
|---|
| 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) }) |
| Elvish | ~/.elvish/rc.elv | eval (zoxide init elvish | slurp) |
| Nushell | env.nu | zoxide init nushell | save -f ~/.zoxide.nu |
| Xonsh | ~/.xonshrc | execx($(zoxide init xonsh)) |
| Commande | Description |
|---|
z foo | Sauter au répertoire le mieux classé correspondant à “foo” |
z foo bar | Sauter au répertoire correspondant à la fois à “foo” et “bar” |
z ~/projects | Sauter au chemin exact (fonctionne comme cd normal) |
z .. | Remonter d’un répertoire |
z - | Retourner au répertoire précédent |
zi foo | Sélection interactive avec fzf (quand plusieurs correspondances) |
zi | Sélection interactive parmi tous les répertoires suivis |
zoxide fait correspondre les chemins de répertoires par mots-clés. Vous n’avez pas besoin de taper le chemin complet :
# Si vous visitez fréquemment /home/user/projects/my-app
z my-app # Saute directement là
z proj app # Fonctionne aussi (correspond aux deux mots dans le chemin)
z app # Fonctionne si c'est votre répertoire "app" le plus fréquent
Scoring : Les répertoires obtiennent des points lors des visites. Les visites récentes scorent plus haut. Les répertoires non utilisés se dégradent au fil du temps.
| Commande | Description |
|---|
zoxide add /path/to/dir | Ajouter manuellement un répertoire à la base de données |
zoxide remove /path/to/dir | Retirer un répertoire de la base de données |
zoxide edit | Ouvrir la base de données dans $EDITOR pour édition manuelle |
zoxide query foo | Afficher la meilleure correspondance pour “foo” (sans sauter) |
zoxide query -l | Lister tous les répertoires dans la base de données, triés par score |
zoxide query -l foo | Lister toutes les correspondances pour “foo” avec scores |
zoxide query -ls foo | Lister les correspondances avec scores, triées par score |
zoxide query -i foo | Mode de sélection interactive |
Vous migrez depuis un autre outil de saut de répertoire ? Importez votre base de données :
| Commande | Description |
|---|
zoxide import --from=autojump /path/to/db | Importer depuis autojump |
zoxide import --from=z /path/to/db | Importer depuis z/z.sh |
zoxide import --from=fasd /path/to/db | Importer depuis fasd |
Emplacements de base de données par défaut à importer :
- autojump :
~/.local/share/autojump/autojump.txt
- z :
~/.z
- fasd :
~/.fasd
| Variable | Défaut | Description |
|---|
_ZO_DATA_DIR | Spécifique à la plateforme | Répertoire pour stocker la base de données |
_ZO_ECHO | 0 | Afficher le répertoire correspondant avant navigation (1 pour activer) |
_ZO_EXCLUDE_DIRS | Aucun | Répertoires à exclure (chemins séparés par deux-points) |
_ZO_FZF_OPTS | Aucun | Options personnalisées passées à fzf en mode interactif |
_ZO_MAXAGE | 10000 | Nombre maximum d’entrées dans la base de données |
_ZO_RESOLVE_SYMLINKS | 0 | Résoudre les liens symboliques avant de stocker les chemins (1 pour activer) |
| Option | Description |
|---|
--cmd j | Changer le nom de commande de z à j (crée j et ji) |
--hook prompt | Mettre à jour les scores à chaque invite (par défaut) |
--hook pwd | Mettre à jour les scores uniquement lors du changement de répertoire |
--hook none | Ne jamais mettre à jour automatiquement les scores |
--no-cmd | Ne pas créer les alias z et zi (utiliser __zoxide_z directement) |
# Exemple : utiliser 'j' au lieu de 'z', mise à jour uniquement lors du changement de répertoire
eval "$(zoxide init bash --cmd j --hook pwd)"
# Exclure le répertoire home et tmp du suivi
export _ZO_EXCLUDE_DIRS="$HOME:/tmp:/private/tmp"
# Utiliser un aperçu fzf personnalisé
export _ZO_FZF_OPTS="--preview 'eza -la --icons {2..}' --preview-window=right:40%"
# Sauter vers un répertoire de projet par nom partiel
z myproject
# Désambiguïser avec plusieurs mots-clés
z work api # correspond à ~/work/projects/api-server
# Mode interactif quand vous n'êtes pas sûr
zi deploy # ouvre fzf avec tous les répertoires correspondants
# Vérifier ce que zoxide pense être la meilleure correspondance
zoxide query deploy
# Voir tous les répertoires suivis et leurs scores
zoxide query -ls
# Nettoyer les répertoires supprimés de la base de données
zoxide query -l | while read -r line; do
dir=$(echo "$line" | awk '{print $2}')
[ ! -d "$dir" ] && zoxide remove "$dir"
done
Lorsque vous utilisez zi, zoxide utilise automatiquement fzf pour la sélection interactive. Assurez-vous que fzf est installé pour que cela fonctionne.
zoxide fournit des complétions à la tabulation. Après l’intégration shell, appuyer sur Tab après z suggérera les répertoires correspondants.
| Fonctionnalité | cd | zoxide (z) |
|---|
| Aller au chemin exact | cd /full/path | z /full/path |
| Correspondance partielle | Non | Oui (z proj) |
| Classement par frecency | Non | Oui |
| Sélection interactive | Non | Oui (zi) |
| Répertoire précédent | cd - | z - |
| Apprentissage du comportement | Non | Apprend de l’utilisation |
| Importation de base de données | N/A | autojump, z, fasd |
| Problème | Solution |
|---|
Commande z introuvable | Assurez-vous que la ligne d’intégration shell est dans votre configuration shell et redémarrez le shell |
| Aucune correspondance trouvée | Visitez d’abord les répertoires avec cd — zoxide apprend au fil du temps |
| Mauvais répertoire correspondant | Utilisez des mots-clés plus spécifiques : z work api au lieu de z api |
| Base de données trop volumineuse | Diminuer _ZO_MAXAGE ou exécuter zoxide edit pour nettoyer |