Intelligenterer cd-Befehl, der Ihre Gewohnheiten mit einem Frecency-Algorithmus lernt, für schnelle Verzeichnisnavigation über verschiedene Shells hinweg.
| Befehl | Beschreibung |
|---|
brew install zoxide | Installation auf macOS mit Homebrew |
cargo install zoxide --locked | Installation von crates.io |
apt install zoxide | Installation auf Debian/Ubuntu |
pacman -S zoxide | Installation auf Arch Linux |
dnf install zoxide | Installation auf Fedora |
scoop install zoxide | Installation auf Windows mit Scoop |
winget install ajeetdsouza.zoxide | Installation auf Windows mit winget |
nix-env -i zoxide | Installation auf NixOS |
conda install -c conda-forge zoxide | Installation mit Conda |
curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh | Installation über Shell-Skript |
| Befehl | Beschreibung |
|---|
eval "$(zoxide init bash)" | Initialisierung für Bash (zu .bashrc hinzufügen) |
eval "$(zoxide init zsh)" | Initialisierung für Zsh (zu .zshrc hinzufügen) |
zoxide init fish | source | Initialisierung für Fish (zu config.fish hinzufügen) |
Invoke-Expression (& { (zoxide init powershell) }) | Initialisierung für PowerShell |
zoxide init nushell | save -f ~/.zoxide.nu | Initialisierung für Nushell |
eval "$(zoxide init elvish)" | Initialisierung für Elvish |
eval (zoxide init xonsh) | Initialisierung für Xonsh |
# Bash — zu ~/.bashrc hinzufügen
eval "$(zoxide init bash)"
# Zsh — zu ~/.zshrc hinzufügen
eval "$(zoxide init zsh)"
# Fish — zu ~/.config/fish/config.fish hinzufügen
zoxide init fish | source
# PowerShell — zu $PROFILE hinzufügen
Invoke-Expression (& { (zoxide init powershell | Out-String) })
# Nushell — zu env.nu hinzufügen
zoxide init nushell | save -f ~/.zoxide.nu
source ~/.zoxide.nu
| Befehl | Beschreibung |
|---|
z foo | Zum bestbewerteten Verzeichnis mit “foo” springen |
z foo bar | Zum Verzeichnis springen, das “foo” und “bar” enthält |
z ~/projects | Zum genauen Pfad springen (wie cd) |
z .. | Zum übergeordneten Verzeichnis wechseln |
z - | Zum vorherigen Verzeichnis wechseln |
z | Zum Home-Verzeichnis wechseln (ohne Argumente) |
zi | Interaktive Auswahl mit fzf |
zi foo | Interaktive Auswahl vorgefiltert nach “foo” |
z foo/ | Zum Unterverzeichnis springen (abschließender Schrägstrich) |
# Nach dem Besuch von Verzeichnissen lernt zoxide diese
cd ~/projects/myapp # Zoxide diesen Pfad beibringen
cd ~/documents/reports # Zoxide diesen Pfad beibringen
cd /var/log/nginx # Zoxide diesen Pfad beibringen
# Später mit Teilübereinstimmungen springen
z myapp # Springt zu ~/projects/myapp
z reports # Springt zu ~/documents/reports
z nginx # Springt zu /var/log/nginx
# Mehrere Schlüsselwörter grenzen die Übereinstimmung ein
z proj myapp # Trifft spezifisch ~/projects/myapp
z doc rep # Trifft ~/documents/reports
| Befehl | Beschreibung |
|---|
z proj | Jedes Verzeichnis mit “proj” abgleichen |
z proj rust | Verzeichnis mit “proj” und “rust” abgleichen |
z /home/user/docs | Absoluten Pfad direkt verwenden |
z docs/ | Bevorzugt Unterverzeichnis namens “docs” |
| Schlüsselwörter passen auf Pfadkomponenten | ”proj” trifft /home/user/projects |
| Letztes Schlüsselwort kann Präfix sein | z pr trifft projects |
| Mehrere Schlüsselwörter werden UND-verknüpft | Alle müssen im Pfad vorkommen |
| Abgleich ignoriert Groß-/Kleinschreibung | z PROJ trifft projects |
| Konzept | Beschreibung |
|---|
| Frecency = Häufigkeit + Aktualität | Bewertung basierend auf Besuchshäufigkeit und -aktualität |
| Kürzliche Besuche werden höher bewertet | Heute besuchte Verzeichnisse punkten mehr als letzte Woche |
| Häufig besuchte Verzeichnisse ranken höher | Regelmäßige Nutzung erhöht die Bewertung |
| Bewertungen verfallen mit der Zeit | Unbenutzte Verzeichnisse verlieren allmählich ihr Ranking |
| Datenbank bereinigt niedrige Bewertungen automatisch | Alte, unbenutzte Einträge werden automatisch entfernt |
Maximale Einträge gesteuert durch _ZO_MAXAGE | Standard: 10.000 Einträge |
| Befehl | Beschreibung |
|---|
zi | fzf mit allen erfassten Verzeichnissen öffnen |
zi query | fzf vorgefiltert nach Abfrage öffnen |
↑ / ↓ in fzf | Ergebnisse navigieren |
Enter in fzf | Auswählen und zum Verzeichnis springen |
Escape in fzf | Auswahl abbrechen |
| In fzf tippen zum Filtern | Ergebnisse weiter eingrenzen |
Erfordert installiertes fzf | fzf für interaktiven Modus installieren |
Tab in fzf | Auswahl umschalten (Mehrfachauswahl) |
# Interaktiven Fuzzy-Finder mit allen erfassten Verzeichnissen öffnen
zi
# Auf Verzeichnisse mit "project" vorfiltern
zi project
# Ausgabeformat in fzf zeigt Bewertungen:
# 3.50 /home/user/projects/myapp
# 2.10 /home/user/projects/api
# 1.20 /var/www/project-site
| Befehl | Beschreibung |
|---|
eval "$(zoxide init bash --cmd cd)" | cd in Bash durch zoxide ersetzen |
eval "$(zoxide init zsh --cmd cd)" | cd in Zsh durch zoxide ersetzen |
--cmd cd ersetzt den cd-Befehl | Lässt cd zoxide verwenden (cd, cdi) |
--cmd j erstellt j und ji | Benutzerdefinierte Befehlsnamen verwenden |
Standard erstellt z und zi | Standard-zoxide-Befehle |
| Befehl | Beschreibung |
|---|
--hook pwd | Datenbank bei Verzeichniswechsel aktualisieren (Standard) |
--hook prompt | Datenbank bei jedem Prompt aktualisieren |
--hook none | Automatisches Tracking deaktivieren |
# cd in Bash durch zoxide ersetzen
eval "$(zoxide init bash --cmd cd)"
# Jetzt verwendet 'cd' zoxide, 'cdi' öffnet interaktiv
# Benutzerdefinierten Befehlsnamen verwenden
eval "$(zoxide init zsh --cmd j)"
# Jetzt springt 'j foo', 'ji' öffnet interaktiv
# Mit fzf für verbessertes Erlebnis kombinieren
export _ZO_FZF_OPTS="--height 40% --reverse --border"
| Befehl | Beschreibung |
|---|
zoxide query foo | Beste Übereinstimmung anzeigen ohne zu springen |
zoxide query foo --list | Alle Übereinstimmungen mit Bewertungen auflisten |
zoxide query foo --score | Übereinstimmungen mit Frecency-Bewertungen anzeigen |
zoxide query --all | Gesamte Datenbank auflisten |
zoxide query --all --score | Datenbank mit Bewertungen auflisten |
zoxide query --exclude /path | Bestimmten Pfad von Ergebnissen ausschließen |
zoxide query --list | head -20 | Top 20 Verzeichnisse |
| Befehl | Beschreibung |
|---|
zoxide add /path/to/dir | Verzeichnis manuell zur Datenbank hinzufügen |
zoxide remove /path/to/dir | Verzeichnis aus Datenbank entfernen |
zoxide edit | Datenbank im $EDITOR öffnen (interaktiv) |
Datenbank gespeichert unter $_ZO_DATA_DIR/db.zo | Standard-Datenbankspeicherort |
# Prüfen was zoxide abgleichen würde
zoxide query project --list --score
# Ausgabe:
# 12.00 /home/user/projects/webapp
# 8.50 /home/user/projects/api
# 3.20 /home/user/old-project
# Datenbank für neue Maschinen manuell befüllen
zoxide add ~/projects/webapp
zoxide add ~/projects/api
zoxide add ~/.config/nvim
# Veraltete Einträge entfernen (gelöschte Verzeichnisse)
zoxide query --all | while read -r dir; do
[ -d "$dir" ] || zoxide remove "$dir"
done
# Datenbank zur Sicherung exportieren
zoxide query --all --score > zoxide-backup.txt
| Befehl | Beschreibung |
|---|
zoxide import --from z path/to/.z | Aus z.sh-Datenbank importieren |
zoxide import --from autojump path/to/autojump.txt | Aus autojump-Datenbank importieren |
zoxide import --merge --from z path/to/.z | Import zusammenführen (bestehende Einträge behalten) |
zoxide import --from z --merge ~/.z | Üblicher z.sh-Import |
# Von z.sh migrieren (am häufigsten)
zoxide import --from z ~/.z
# Von autojump migrieren
zoxide import --from autojump ~/.local/share/autojump/autojump.txt
# Mit bestehender Datenbank zusammenführen (nicht überschreiben)
zoxide import --merge --from z ~/.z
# Nach dem Import überprüfen
zoxide query --all --score | head -20
| Befehl | Beschreibung |
|---|
export _ZO_DATA_DIR="$HOME/.local/share/zoxide" | Datenbankverzeichnis festlegen |
export _ZO_ECHO=1 | Übereinstimmendes Verzeichnis vor dem Springen ausgeben |
export _ZO_EXCLUDE_DIRS="/tmp/*:/private/*" | Verzeichnisse vom Tracking ausschließen |
export _ZO_FZF_OPTS="--height 40%" | Benutzerdefinierte fzf-Optionen für zi |
export _ZO_MAXAGE=10000 | Maximale Datenbankeinträge festlegen |
export _ZO_RESOLVE_SYMLINKS=1 | Symlinks vor dem Speichern auflösen |
# ~/.bashrc oder ~/.zshrc — vollständige zoxide-Konfiguration
# Benutzerdefiniertes Datenverzeichnis festlegen
export _ZO_DATA_DIR="$HOME/.local/share/zoxide"
# Übereinstimmendes Verzeichnis vor dem Springen ausgeben
export _ZO_ECHO=1
# Temporäre und Systemverzeichnisse ausschließen
export _ZO_EXCLUDE_DIRS="$HOME:$HOME/Downloads:/tmp/*:/private/*"
# fzf-Erscheinungsbild für interaktiven Modus anpassen
export _ZO_FZF_OPTS="
--height 40%
--layout reverse
--border rounded
--preview 'ls -la {2..}'
--preview-window right:40%
"
# Maximale Einträge vor Bereinigung (Standard: 10000)
export _ZO_MAXAGE=10000
# Symlinks zu kanonischen Pfaden auflösen
export _ZO_RESOLVE_SYMLINKS=1
# Zoxide initialisieren (muss NACH den Exports sein)
eval "$(zoxide init zsh)"
| Befehl | Beschreibung |
|---|
z <Tab> | Aus erfassten Verzeichnissen vervollständigen |
z foo<Tab> | Übereinstimmende Verzeichnisse vervollständigen |
Bash-Vervollständigung über zoxide init | Automatisch mit Shell-Initialisierung |
Zsh-Vervollständigung über zoxide init | Automatisch mit Shell-Initialisierung |
Fish-Vervollständigung über zoxide init | Automatisch mit Shell-Initialisierung |
-
Zoxide natürlich lernen lassen — Die Shell normal verwenden und zoxide baut seine Datenbank aus Ihren Gewohnheiten auf. Nicht versuchen, jedes Verzeichnis manuell einzufügen.
-
Zwei Schlüsselwörter für Präzision verwenden — Wenn mehrere Verzeichnisse übereinstimmen, ein zweites Schlüsselwort hinzufügen: z proj api ist präziser als z api allein.
-
Abschließenden Schrägstrich für Unterverzeichnisse verwenden — z foo/ bevorzugt Unterverzeichnisse des aktuellen Verzeichnisses namens “foo”, während z foo die gesamte Datenbank durchsucht.
-
cd für maximales Lernen ersetzen — --cmd cd in der Shell-Initialisierung verwenden, damit jeder Verzeichniswechsel zoxide füttert, nicht nur wenn man sich erinnert, z zu verwenden.
-
Ausschlüsse frühzeitig konfigurieren — _ZO_EXCLUDE_DIRS setzen, um temporäre Verzeichnisse, Build-Ordner und node_modules-Pfade auszuschließen, die Ergebnisse verunreinigen.
-
zi für mehrdeutige Sprünge verwenden — Wenn unsicher welches Verzeichnis übereinstimmt, zi (interaktiv) verwenden, um Kandidaten zu sichten und auszuwählen.
-
Bestehende Daten migrieren — Beim Wechsel von z.sh, autojump oder fasd die Datenbank mit zoxide import importieren, um mit einem vorgewärmten Cache zu starten.
-
Veraltete Einträge bereinigen — Regelmäßig Einträge für gelöschte Verzeichnisse mit zoxide edit oder einem Bereinigungsskript entfernen, um Ergebnisse relevant zu halten.
-
Datenbank sichern — Mit zoxide query --all --score exportieren vor OS-Neuinstallationen oder Maschinenmigrationen.
-
fzf-Erscheinungsbild anpassen — _ZO_FZF_OPTS mit --preview 'ls {2..}' setzen, um Verzeichnisinhalte im interaktiven Picker anzuzeigen.