Zoxide est un utilitaire en ligne de commande multiplateforme écrit en Rust, conçu pour transformer la manière dont les utilisateurs naviguent dans les répertoires du terminal. Il se positionne comme une alternative intelligente à la commande cd traditionnelle, s'inspirant des outils classiques z et autojump. En apprenant continuellement les habitudes de navigation de l'utilisateur, Zoxide maintient une base de données pondérée basée sur la "fréquence" et la "récence" (Frecency). Cela permet aux utilisateurs de changer de répertoire sans saisir de chemins complets et fastidieux ; quelques mots-clés du nom du répertoire suffisent pour que Zoxide calcule instantanément le chemin le plus pertinent et effectue le changement.
Fonctionnalités clés
- Algortihme de pondération intelligent : Utilise l'algorithme Frecency, qui combine la fréquence d'accès et le temps du dernier accès pour prioriser les répertoires les plus fréquemment utilisés.
- Multiplateforme et multi-shell : Prend en charge nativement Linux, macOS et Windows, et s'intègre parfaitement avec les environnements Shell courants tels que Bash, Zsh, Fish, PowerShell, Elvish et Nushell.
- Sélection interactive : S'intègre avec le chercheur flou
fzf. Lorsque plusieurs correspondances sont trouvées, la commandezipermet une sélection visuelle dans une interface interactive. - Substitution transparente de
cd: Peut être configuré pour remplacer complètement la commandecdsystème, permettant de conserver les habitudes d'utilisation tout en bénéficiant de la navigation intelligente. - Importation de données et compatibilité : Offre une fonction d'importation en un clic pour migrer les données historiques d'anciens outils comme
autojump,z,z.luaetzsh-z, assurant une transition en douceur. - Intégration avec l'écosystème tiers : S'intègre en profondeur avec des gestionnaires de fichiers et des éditeurs tels que Neovim (via
telescope-zoxide), Ranger, Yazi et LF, pour une mémoire de répertoire unifiée entre les outils.
Installation et configuration
Méthodes d'installation
Via les gestionnaires de paquets (recommandé) :
- macOS (Homebrew) :
brew install zoxide - Ubuntu/Debien :
sudo apt install zoxide - Arch Linux :
sudo pacman -S zoxide - Windows (Winget) :
winget install ajeetdsouza.zoxide - Cargo (général) :
cargo install zoxide --locked
Via le script d'installation :
curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh
Configuration du Shell
Après avoir installé l'exécutable, vous devez initialiser Zoxide dans votre fichier de configuraton Shell. Voici un exemple pour Zsh (la syntaxe est similaire pour d'autres shells) :
- Modifiez votre fichier
~/.zshrcet ajoutez à la fin : ``` eval "$(zoxide init zsh)" - Rechargez la configuration :
source ~/.zshrc
Options de configuration avancées
- Préfixe de commande personnalisé : Pour utiliser un alias différent de
z, spécifiez-le, par exemple :eval "$(zoxide init zsh --cmd j)"pour utiliserjcomme commande. - Remplacement de
cd: Utilisez l'argument--cmd cdpour que la commandecdelle-même devienne intelligente. - Variables d'environnement : Définissez
_ZO_EXCLUDE_DIRSpour exclure certains répertoires (comme/tmpounode_modules) de l'enregistrement. Définissez_ZO_DATA_DIRpour spécifier un emplacement personnalisé pour la base de données.
Utilisation
L'utilisation de Zoxide est très intuitive, la commande principale étant z.
- Navigation de base :
z foo— Navigue vers le répertoire dont le nom contient "foo" et qui a le poids le plus élevé. - Correspondance de plusieurs mots-clés :
z foo bar— Navigue vers un répertoire contenant à la fois "foo" et "bar" (par exemple,project-foo-bar). - Chemins relatifs et absolus :
z foo/pour entrer dans le sous-répertoirefoodu répertoire actuel ;z /etcpour accéder au chemin absolu. - Sélection interactive :
zi foo— Ouvre le panneau de sélectionfzf, listant toutes les correspondances pour que vous puissiez choisir. - Gestion des répertoires :
zoxide add /chemin— Ajoute manuellement un répertoire à la base de données.zoxide remove /chemin— Supprime un répertoire de la base de données.zoxide query foo— Interroge uniquement les chemins correspondants sans naviguer.
Exemples d'utilisation
Exemple 1 : Changement entre plusieurs projets
Scénario : Un développeur maintient trois projets : company-website, personal-blog et internal-api-service, situés respectivement dans ~/Dev/company/, ~/Projects/blog/ et /workspace/api/.
- Méthode traditionnelle : Nécessite de taper
cd ~/Dev/company/company-websiteou d'utiliser plusieurs foiscd ../. - Méthode Zoxide : Il suffit de taper
z web. Comme le projet du site web est fréquemment accédé, Zoxide correspondra automatiquement àcompany-websiteet vous y amènera instantanément. Pour passer au blog, tapez simplementz blog.
Exemple 2 : Accès à des répertoires imbriqués en profondeur
Scénario : Besoin d'accéder au répertoire ~/Documents/University/CS101/Assignments/Project_Final/src/utils/.
- Méthode traditionnelle : Nécessite de naviguer niveau par niveau avec
cdou de copier-coller le chemin long. - Méthode Zoxide : Tapez
z utils. Même si le répertoireutilsest très profond, tant qu'il s'agit du seul répertoire contenant "utils" que vous avez accédé récemment, Zoxide peut le trouver directement en traversant tous les répertoires parents.
Exemple 3 : Correspondance floue et résolution de conflits
Scénario : Il existe deux répertoires, old-project et new-project, et vous souhaitez accéder à new-project.
- Opération : Tapez
z new. Si les poids sont similaires, le système pourrait ne pas être en mesure de déterminer le bon répertoire. Utilisez alorszi new. Dans l'interfacefzf, utilisez les touches fléchées pour sélectionnernew-projectet appuyez sur Entrée pour y accéder.
Adresse GitHub
Dépôt du projet : https://github.com/ajeetdsouza/zoxide