Zum Inhalt springen

Zoxide

Intelligenterer cd-Befehl, der Ihre Gewohnheiten mit einem Frecency-Algorithmus lernt, für schnelle Verzeichnisnavigation über verschiedene Shells hinweg.

BefehlBeschreibung
brew install zoxideInstallation auf macOS mit Homebrew
cargo install zoxide --lockedInstallation von crates.io
apt install zoxideInstallation auf Debian/Ubuntu
pacman -S zoxideInstallation auf Arch Linux
dnf install zoxideInstallation auf Fedora
scoop install zoxideInstallation auf Windows mit Scoop
winget install ajeetdsouza.zoxideInstallation auf Windows mit winget
nix-env -i zoxideInstallation auf NixOS
conda install -c conda-forge zoxideInstallation mit Conda
curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | shInstallation über Shell-Skript
BefehlBeschreibung
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 | sourceInitialisierung für Fish (zu config.fish hinzufügen)
Invoke-Expression (& { (zoxide init powershell) })Initialisierung für PowerShell
zoxide init nushell | save -f ~/.zoxide.nuInitialisierung 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
BefehlBeschreibung
z fooZum bestbewerteten Verzeichnis mit “foo” springen
z foo barZum Verzeichnis springen, das “foo” und “bar” enthält
z ~/projectsZum genauen Pfad springen (wie cd)
z ..Zum übergeordneten Verzeichnis wechseln
z -Zum vorherigen Verzeichnis wechseln
zZum Home-Verzeichnis wechseln (ohne Argumente)
ziInteraktive Auswahl mit fzf
zi fooInteraktive 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
BefehlBeschreibung
z projJedes Verzeichnis mit “proj” abgleichen
z proj rustVerzeichnis mit “proj” und “rust” abgleichen
z /home/user/docsAbsoluten 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 seinz pr trifft projects
Mehrere Schlüsselwörter werden UND-verknüpftAlle müssen im Pfad vorkommen
Abgleich ignoriert Groß-/Kleinschreibungz PROJ trifft projects
KonzeptBeschreibung
Frecency = Häufigkeit + AktualitätBewertung basierend auf Besuchshäufigkeit und -aktualität
Kürzliche Besuche werden höher bewertetHeute besuchte Verzeichnisse punkten mehr als letzte Woche
Häufig besuchte Verzeichnisse ranken höherRegelmäßige Nutzung erhöht die Bewertung
Bewertungen verfallen mit der ZeitUnbenutzte Verzeichnisse verlieren allmählich ihr Ranking
Datenbank bereinigt niedrige Bewertungen automatischAlte, unbenutzte Einträge werden automatisch entfernt
Maximale Einträge gesteuert durch _ZO_MAXAGEStandard: 10.000 Einträge
BefehlBeschreibung
zifzf mit allen erfassten Verzeichnissen öffnen
zi queryfzf vorgefiltert nach Abfrage öffnen
↑ / ↓ in fzfErgebnisse navigieren
Enter in fzfAuswählen und zum Verzeichnis springen
Escape in fzfAuswahl abbrechen
In fzf tippen zum FilternErgebnisse weiter eingrenzen
Erfordert installiertes fzffzf für interaktiven Modus installieren
Tab in fzfAuswahl 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
BefehlBeschreibung
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-BefehlLässt cd zoxide verwenden (cd, cdi)
--cmd j erstellt j und jiBenutzerdefinierte Befehlsnamen verwenden
Standard erstellt z und ziStandard-zoxide-Befehle
BefehlBeschreibung
--hook pwdDatenbank bei Verzeichniswechsel aktualisieren (Standard)
--hook promptDatenbank bei jedem Prompt aktualisieren
--hook noneAutomatisches 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"
BefehlBeschreibung
zoxide query fooBeste Übereinstimmung anzeigen ohne zu springen
zoxide query foo --listAlle Übereinstimmungen mit Bewertungen auflisten
zoxide query foo --scoreÜbereinstimmungen mit Frecency-Bewertungen anzeigen
zoxide query --allGesamte Datenbank auflisten
zoxide query --all --scoreDatenbank mit Bewertungen auflisten
zoxide query --exclude /pathBestimmten Pfad von Ergebnissen ausschließen
zoxide query --list | head -20Top 20 Verzeichnisse
BefehlBeschreibung
zoxide add /path/to/dirVerzeichnis manuell zur Datenbank hinzufügen
zoxide remove /path/to/dirVerzeichnis aus Datenbank entfernen
zoxide editDatenbank im $EDITOR öffnen (interaktiv)
Datenbank gespeichert unter $_ZO_DATA_DIR/db.zoStandard-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
BefehlBeschreibung
zoxide import --from z path/to/.zAus z.sh-Datenbank importieren
zoxide import --from autojump path/to/autojump.txtAus autojump-Datenbank importieren
zoxide import --merge --from z path/to/.zImport 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
BefehlBeschreibung
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=10000Maximale Datenbankeinträge festlegen
export _ZO_RESOLVE_SYMLINKS=1Symlinks 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)"
BefehlBeschreibung
z <Tab>Aus erfassten Verzeichnissen vervollständigen
z foo<Tab>Übereinstimmende Verzeichnisse vervollständigen
Bash-Vervollständigung über zoxide initAutomatisch mit Shell-Initialisierung
Zsh-Vervollständigung über zoxide initAutomatisch mit Shell-Initialisierung
Fish-Vervollständigung über zoxide initAutomatisch mit Shell-Initialisierung
  1. 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.

  2. 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.

  3. Abschließenden Schrägstrich für Unterverzeichnisse verwendenz foo/ bevorzugt Unterverzeichnisse des aktuellen Verzeichnisses namens “foo”, während z foo die gesamte Datenbank durchsucht.

  4. 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.

  5. Ausschlüsse frühzeitig konfigurieren_ZO_EXCLUDE_DIRS setzen, um temporäre Verzeichnisse, Build-Ordner und node_modules-Pfade auszuschließen, die Ergebnisse verunreinigen.

  6. zi für mehrdeutige Sprünge verwenden — Wenn unsicher welches Verzeichnis übereinstimmt, zi (interaktiv) verwenden, um Kandidaten zu sichten und auszuwählen.

  7. 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.

  8. 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.

  9. Datenbank sichern — Mit zoxide query --all --score exportieren vor OS-Neuinstallationen oder Maschinenmigrationen.

  10. fzf-Erscheinungsbild anpassen_ZO_FZF_OPTS mit --preview 'ls {2..}' setzen, um Verzeichnisinhalte im interaktiven Picker anzuzeigen.