Ein intelligenterer cd-Befehl, der Ihre meistgenutzten Verzeichnisse lernt und Sie mit nur wenigen Tastenanschlägen dorthin springen lässt. Verwendet einen “Frecency”-Algorithmus, der Häufigkeit und Aktualität der Besuche kombiniert.
| Plattform | Befehl |
|---|
| 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 (Alle Plattformen) | cargo install zoxide --locked |
| Conda | conda install -c conda-forge zoxide |
| Nix | nix-env -iA nixpkgs.zoxide |
| Installationsskript | curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh |
Fügen Sie die entsprechende Zeile zu Ihrer Shell-Konfigurationsdatei hinzu:
| Shell | Konfigurationsdatei | Hinzuzufügender Befehl |
|---|
| 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)) |
| Befehl | Beschreibung |
|---|
z foo | Zum am höchsten bewerteten Verzeichnis springen, das “foo” entspricht |
z foo bar | Zum Verzeichnis springen, das sowohl “foo” als auch “bar” entspricht |
z ~/projects | Zum exakten Pfad springen (funktioniert wie normales cd) |
z .. | Ein Verzeichnis nach oben gehen |
z - | Zum vorherigen Verzeichnis zurückkehren |
zi foo | Interaktive Auswahl mit fzf (bei mehreren Übereinstimmungen) |
zi | Interaktive Auswahl aus allen verfolgten Verzeichnissen |
zoxide matched Verzeichnispfade nach Schlüsselwörtern. Sie müssen nicht den vollständigen Pfad eingeben:
# Wenn Sie häufig /home/user/projects/my-app besuchen
z my-app # Springt direkt dorthin
z proj app # Funktioniert auch (matched beide Wörter im Pfad)
z app # Funktioniert, wenn es Ihr häufigstes "app"-Verzeichnis ist
Bewertung: Verzeichnisse erhalten Punkte bei Besuch. Aktuelle Besuche erhalten höhere Bewertungen. Ungenutzte Verzeichnisse verfallen mit der Zeit.
| Befehl | Beschreibung |
|---|
zoxide add /path/to/dir | Verzeichnis manuell zur Datenbank hinzufügen |
zoxide remove /path/to/dir | Verzeichnis aus der Datenbank entfernen |
zoxide edit | Datenbank in $EDITOR zur manuellen Bearbeitung öffnen |
zoxide query foo | Beste Übereinstimmung für “foo” anzeigen (ohne zu springen) |
zoxide query -l | Alle Verzeichnisse in der Datenbank auflisten, nach Bewertung sortiert |
zoxide query -l foo | Alle Übereinstimmungen für “foo” mit Bewertungen auflisten |
zoxide query -ls foo | Übereinstimmungen mit Bewertungen auflisten, nach Bewertung sortiert |
zoxide query -i foo | Interaktiver Auswahlmodus |
Migration von einem anderen Directory Jumper? Importieren Sie Ihre Datenbank:
| Befehl | Beschreibung |
|---|
zoxide import --from=autojump /path/to/db | Von autojump importieren |
zoxide import --from=z /path/to/db | Von z/z.sh importieren |
zoxide import --from=fasd /path/to/db | Von fasd importieren |
Standard-Datenbankspeicherorte zum Importieren:
- autojump:
~/.local/share/autojump/autojump.txt
- z:
~/.z
- fasd:
~/.fasd
| Variable | Standard | Beschreibung |
|---|
_ZO_DATA_DIR | Plattformspezifisch | Verzeichnis zum Speichern der Datenbank |
_ZO_ECHO | 0 | Gematchtes Verzeichnis vor Navigation ausgeben (1 zum Aktivieren) |
_ZO_EXCLUDE_DIRS | Keine | Auszuschließende Verzeichnisse (durch Doppelpunkt getrennte Pfade) |
_ZO_FZF_OPTS | Keine | Benutzerdefinierte Optionen für fzf im interaktiven Modus |
_ZO_MAXAGE | 10000 | Maximale Anzahl von Einträgen in der Datenbank |
_ZO_RESOLVE_SYMLINKS | 0 | Symlinks vor dem Speichern von Pfaden auflösen (1 zum Aktivieren) |
| Option | Beschreibung |
|---|
--cmd j | Befehlsnamen von z zu j ändern (erstellt j und ji) |
--hook prompt | Bewertungen bei jedem Prompt aktualisieren (Standard) |
--hook pwd | Bewertungen nur bei Verzeichniswechsel aktualisieren |
--hook none | Bewertungen nie automatisch aktualisieren |
--no-cmd | Keine z und zi Aliase erstellen (verwenden Sie __zoxide_z direkt) |
# Beispiel: 'j' statt 'z' verwenden, nur bei Verzeichniswechsel aktualisieren
eval "$(zoxide init bash --cmd j --hook pwd)"
# Home-Verzeichnis und tmp von der Verfolgung ausschließen
export _ZO_EXCLUDE_DIRS="$HOME:/tmp:/private/tmp"
# Benutzerdefinierte fzf-Vorschau verwenden
export _ZO_FZF_OPTS="--preview 'eza -la --icons {2..}' --preview-window=right:40%"
# Zu einem Projektverzeichnis nach Teilnamen springen
z myproject
# Mit mehreren Schlüsselwörtern unterscheiden
z work api # matched ~/work/projects/api-server
# Interaktiver Modus, wenn Sie sich nicht sicher sind
zi deploy # öffnet fzf mit allen passenden Verzeichnissen
# Prüfen, was zoxide für die beste Übereinstimmung hält
zoxide query deploy
# Alle verfolgten Verzeichnisse und ihre Bewertungen anzeigen
zoxide query -ls
# Gelöschte Verzeichnisse aus der Datenbank bereinigen
zoxide query -l | while read -r line; do
dir=$(echo "$line" | awk '{print $2}')
[ ! -d "$dir" ] && zoxide remove "$dir"
done
Wenn Sie zi verwenden, verwendet zoxide automatisch fzf für die interaktive Auswahl. Stellen Sie sicher, dass fzf dafür installiert ist.
zoxide bietet Tab-Vervollständigungen. Nach der Shell-Integration schlägt das Drücken von Tab nach z passende Verzeichnisse vor.
| Funktion | cd | zoxide (z) |
|---|
| Zum exakten Pfad gehen | cd /full/path | z /full/path |
| Teilweises Matching | Nein | Ja (z proj) |
| Frecency-Bewertung | Nein | Ja |
| Interaktive Auswahl | Nein | Ja (zi) |
| Vorheriges Verzeichnis | cd - | z - |
| Lernverhalten | Nein | Lernt aus Nutzung |
| Datenbank-Import | N/A | autojump, z, fasd |
| Problem | Lösung |
|---|
z-Befehl nicht gefunden | Stellen Sie sicher, dass die Shell-Integrationszeile in Ihrer Shell-Konfiguration ist und starten Sie die Shell neu |
| Keine Übereinstimmungen gefunden | Besuchen Sie Verzeichnisse zuerst mit cd — zoxide lernt mit der Zeit |
| Falsches Verzeichnis gematcht | Verwenden Sie spezifischere Schlüsselwörter: z work api statt z api |
| Datenbank zu groß | _ZO_MAXAGE verringern oder zoxide edit ausführen, um aufzuräumen |