Salta ai contenuti

Zoxide

Comando cd piu intelligente che impara le tue abitudini usando un algoritmo di frequenza per una navigazione rapida delle directory tra le shell.

ComandoDescrizione
brew install zoxideInstalla su macOS con Homebrew
cargo install zoxide --lockedInstalla da crates.io
apt install zoxideInstalla su Debian/Ubuntu
pacman -S zoxideInstalla su Arch Linux
dnf install zoxideInstalla su Fedora
scoop install zoxideInstalla su Windows con Scoop
winget install ajeetdsouza.zoxideInstalla su Windows con winget
nix-env -i zoxideInstalla su NixOS
conda install -c conda-forge zoxideInstalla con Conda
curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | shInstalla tramite script shell
ComandoDescrizione
eval "$(zoxide init bash)"Inizializza per Bash (aggiungi a .bashrc)
eval "$(zoxide init zsh)"Inizializza per Zsh (aggiungi a .zshrc)
zoxide init fish | sourceInizializza per Fish (aggiungi a config.fish)
Invoke-Expression (& { (zoxide init powershell) })Inizializza per PowerShell
zoxide init nushell | save -f ~/.zoxide.nuInizializza per Nushell
eval "$(zoxide init elvish)"Inizializza per Elvish
eval (zoxide init xonsh)Inizializza per Xonsh
# Bash — aggiungi a ~/.bashrc
eval "$(zoxide init bash)"

# Zsh — aggiungi a ~/.zshrc
eval "$(zoxide init zsh)"

# Fish — aggiungi a ~/.config/fish/config.fish
zoxide init fish | source

# PowerShell — aggiungi a $PROFILE
Invoke-Expression (& { (zoxide init powershell | Out-String) })

# Nushell — aggiungi a env.nu
zoxide init nushell | save -f ~/.zoxide.nu
source ~/.zoxide.nu
ComandoDescrizione
z fooVai alla directory con il punteggio piu alto che corrisponde a “foo”
z foo barVai alla directory che corrisponde sia a “foo” che a “bar”
z ~/projectsVai al percorso esatto (come cd)
z ..Vai alla directory padre
z -Vai alla directory precedente
zVai alla directory home (senza argomenti)
ziSelezione interattiva con fzf
zi fooSelezione interattiva pre-filtrata per “foo”
z foo/Vai alla sottodirectory (barra finale)
# Dopo aver visitato le directory, zoxide le impara
cd ~/projects/myapp          # Insegna a zoxide questo percorso
cd ~/documents/reports       # Insegna a zoxide questo percorso
cd /var/log/nginx            # Insegna a zoxide questo percorso

# Successivamente, salta con corrispondenze parziali
z myapp                      # Salta a ~/projects/myapp
z reports                    # Salta a ~/documents/reports
z nginx                      # Salta a /var/log/nginx

# Parole chiave multiple restringono la corrispondenza
z proj myapp                 # Corrisponde a ~/projects/myapp specificamente
z doc rep                    # Corrisponde a ~/documents/reports
ComandoDescrizione
z projCorrisponde a qualsiasi directory contenente “proj”
z proj rustCorrisponde a directory contenente sia “proj” che “rust”
z /home/user/docsUsa percorso assoluto direttamente
z docs/Corrisponde e preferisce sottodirectory chiamata “docs”
Le parole chiave corrispondono ai componenti del percorso”proj” corrisponde a /home/user/projects
L’ultima parola chiave puo corrispondere al prefissoz pr corrisponde a projects
Le parole chiave multiple sono in ANDTutte devono apparire nel percorso
La corrispondenza ignora maiuscole/minuscolez PROJ corrisponde a projects
ConcettoDescrizione
Frequenza = Frequenza + RecenzaPunteggio basato su quanto spesso e di recente visitato
Le visite recenti hanno punteggio piu altoDirectory visitate oggi hanno punteggio maggiore di quelle della scorsa settimana
Le directory visitate frequentemente hanno ranking piu altoL’uso regolare aumenta il punteggio nel tempo
I punteggi decadono nel tempoLe directory inutilizzate perdono gradualmente ranking
Il database rimuove automaticamente i punteggi bassiLe voci vecchie e inutilizzate vengono rimosse automaticamente
Voci massime controllate da _ZO_MAXAGEPredefinito: 10.000 voci
ComandoDescrizione
ziApri fzf con tutte le directory tracciate
zi queryApri fzf pre-filtrato per query
↑ / ↓ in fzfNaviga i risultati
Enter in fzfSeleziona e vai alla directory
Escape in fzfAnnulla selezione
Digita in fzf per filtrareRestringi ulteriormente i risultati
Richiede fzf installatoInstalla fzf per la modalita interattiva
Tab in fzfAttiva/disattiva selezione (modalita multi-selezione)
# Apri il finder fuzzy interattivo con tutte le directory tracciate
zi

# Pre-filtra alle directory contenenti "project"
zi project

# Il formato di output in fzf mostra i punteggi:
#   3.50   /home/user/projects/myapp
#   2.10   /home/user/projects/api
#   1.20   /var/www/project-site
ComandoDescrizione
eval "$(zoxide init bash --cmd cd)"Sostituisci cd con zoxide in Bash
eval "$(zoxide init zsh --cmd cd)"Sostituisci cd con zoxide in Zsh
--cmd cd sostituisce il comando cdFa usare zoxide a cd (cd, cdi)
--cmd j crea j e jiUsa nomi di comandi personalizzati
Predefinito crea z e ziComandi standard di zoxide
ComandoDescrizione
--hook pwdAggiorna database al cambio di directory (predefinito)
--hook promptAggiorna database ad ogni prompt
--hook noneDisabilita il tracciamento automatico
# Sostituisci cd in Bash con zoxide
eval "$(zoxide init bash --cmd cd)"
# Ora 'cd' usa zoxide, 'cdi' apre la modalita interattiva

# Usa nome comando personalizzato
eval "$(zoxide init zsh --cmd j)"
# Ora 'j foo' salta, 'ji' apre la modalita interattiva

# Combina con fzf per un'esperienza migliorata
export _ZO_FZF_OPTS="--height 40% --reverse --border"
ComandoDescrizione
zoxide query fooMostra la migliore corrispondenza senza saltare
zoxide query foo --listElenca tutte le corrispondenze con punteggi
zoxide query foo --scoreMostra corrispondenze con punteggi di frequenza
zoxide query --allElenca l’intero database
zoxide query --all --scoreElenca il database con punteggi
zoxide query --exclude /pathEscludi percorso specifico dai risultati
zoxide query --list | head -20Le 20 directory principali
ComandoDescrizione
zoxide add /path/to/dirAggiungi manualmente una directory al database
zoxide remove /path/to/dirRimuovi una directory dal database
zoxide editApri il database in $EDITOR (interattivo)
Database salvato in $_ZO_DATA_DIR/db.zoPosizione predefinita del database
# Controlla cosa corrisponderebbe zoxide
zoxide query project --list --score
# Output:
#    12.00  /home/user/projects/webapp
#     8.50  /home/user/projects/api
#     3.20  /home/user/old-project

# Popola manualmente il database per nuove macchine
zoxide add ~/projects/webapp
zoxide add ~/projects/api
zoxide add ~/.config/nvim

# Rimuovi voci obsolete (directory eliminate)
zoxide query --all | while read -r dir; do
  [ -d "$dir" ] || zoxide remove "$dir"
done

# Esporta il database per backup
zoxide query --all --score > zoxide-backup.txt
ComandoDescrizione
zoxide import --from z path/to/.zImporta dal database di z.sh
zoxide import --from autojump path/to/autojump.txtImporta dal database di autojump
zoxide import --merge --from z path/to/.zImporta con merge (mantieni voci esistenti)
zoxide import --from z --merge ~/.zImportazione comune da z.sh
# Migra da z.sh (piu comune)
zoxide import --from z ~/.z

# Migra da autojump
zoxide import --from autojump ~/.local/share/autojump/autojump.txt

# Unisci con database esistente (non sovrascrivere)
zoxide import --merge --from z ~/.z

# Dopo l'importazione, verifica
zoxide query --all --score | head -20
ComandoDescrizione
export _ZO_DATA_DIR="$HOME/.local/share/zoxide"Imposta la directory del database
export _ZO_ECHO=1Stampa la directory corrispondente prima di saltare
export _ZO_EXCLUDE_DIRS="/tmp/*:/private/*"Escludi directory dal tracciamento
export _ZO_FZF_OPTS="--height 40%"Opzioni fzf personalizzate per zi
export _ZO_MAXAGE=10000Imposta il massimo di voci nel database
export _ZO_RESOLVE_SYMLINKS=1Risolvi i symlink prima di salvare
# ~/.bashrc o ~/.zshrc — configurazione completa di zoxide

# Imposta directory dati personalizzata
export _ZO_DATA_DIR="$HOME/.local/share/zoxide"

# Stampa la directory corrispondente prima di saltare
export _ZO_ECHO=1

# Escludi directory temporanee e di sistema
export _ZO_EXCLUDE_DIRS="$HOME:$HOME/Downloads:/tmp/*:/private/*"

# Personalizza l'aspetto di fzf per la modalita interattiva
export _ZO_FZF_OPTS="
  --height 40%
  --layout reverse
  --border rounded
  --preview 'ls -la {2..}'
  --preview-window right:40%
"

# Voci massime prima della pulizia (predefinito: 10000)
export _ZO_MAXAGE=10000

# Risolvi symlink in percorsi canonici
export _ZO_RESOLVE_SYMLINKS=1

# Inizializza zoxide (deve essere DOPO le export)
eval "$(zoxide init zsh)"
ComandoDescrizione
z <Tab>Autocompletamento dalle directory tracciate
z foo<Tab>Completa directory corrispondenti
Completamento Bash tramite zoxide initAutomatico con init della shell
Completamento Zsh tramite zoxide initAutomatico con init della shell
Completamento Fish tramite zoxide initAutomatico con init della shell
  1. Lascia che zoxide impari naturalmente — Usa la tua shell normalmente e zoxide costruira il suo database dalle tue abitudini. Non cercare di popolare manualmente ogni directory.

  2. Usa due parole chiave per precisione — Quando piu directory corrispondono, aggiungi una seconda parola chiave: z proj api e piu preciso di z api da solo.

  3. Usa la barra finale per le sottodirectoryz foo/ preferisce le sottodirectory della directory corrente chiamate “foo”, mentre z foo cerca nell’intero database.

  4. Sostituisci cd per il massimo apprendimento — Usa --cmd cd nell’init della shell cosi ogni cambio di directory alimenta zoxide, non solo quando ti ricordi di usare z.

  5. Configura le esclusioni in anticipo — Imposta _ZO_EXCLUDE_DIRS per saltare directory temporanee, cartelle di build e percorsi node_modules che inquinano i risultati.

  6. Usa zi per salti ambigui — Quando non sei sicuro quale directory corrispondera, usa zi (interattivo) per visualizzare in anteprima e selezionare tra i candidati.

  7. Migra i dati esistenti — Se passi da z.sh, autojump o fasd, importa il database con zoxide import per iniziare con una cache gia popolata.

  8. Pulisci le voci obsolete — Rimuovi periodicamente le voci per directory eliminate usando zoxide edit o uno script di pulizia per mantenere i risultati rilevanti.

  9. Fai backup del tuo database — Esporta con zoxide query --all --score prima di reinstallazioni del sistema operativo o migrazioni di macchine.

  10. Personalizza l’aspetto di fzf — Imposta _ZO_FZF_OPTS con --preview 'ls {2..}' per mostrare il contenuto della directory nel selettore interattivo.