Salta ai contenuti

Yazi

File manager da terminale velocissimo scritto in Rust con I/O asincrono, anteprima immagini, sistema di plugin e supporto multi-tab.

ComandoDescrizione
brew install yazi ffmpegthumbnailer unar jq poppler fd ripgrep fzf zoxide imagemagickInstallazione completa su macOS con tutte le dipendenze di anteprima
brew install yaziInstallazione minimale su macOS
cargo install --locked yazi-fm yazi-cliInstalla da crates.io
pacman -S yazi ffmpegthumbnailer unarchiver jq poppler fd ripgrep fzf zoxideInstallazione completa su Arch Linux
scoop install yaziInstalla su Windows con Scoop
winget install sxyazi.yaziInstalla su Windows con winget
nix-env -i yaziInstalla su NixOS
snap install yazi --classicInstalla su Ubuntu via Snap
ComandoDescrizione
yaziAvvia Yazi nella directory corrente
yazi /path/to/dirApri Yazi in una directory specifica
yazi --versionMostra la versione installata
ya --versionMostra la versione dell’helper CLI
yazi --cwd-file=/tmp/cwdSalva l’ultima directory all’uscita
# Bash/Zsh — aggiungi a ~/.bashrc o ~/.zshrc
function y() {
  local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd
  yazi "$@" --cwd-file="$tmp"
  if cwd="$(command cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
    builtin cd -- "$cwd"
  done
  rm -f -- "$tmp"
}
# Fish — aggiungi a ~/.config/fish/config.fish
function y
  set tmp (mktemp -t "yazi-cwd.XXXXXX")
  yazi $argv --cwd-file="$tmp"
  if set cwd (command cat -- "$tmp"); and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ]
    builtin cd -- "$cwd"
  end
  rm -f -- "$tmp"
end
ComandoDescrizione
j o Sposta il cursore in basso
k o Sposta il cursore in alto
h o Vai alla directory padre
l o o EnterEntra nella directory o apri il file
g gVai al primo elemento
GVai all’ultimo elemento
~Vai alla directory home
BackspaceVai alla directory padre
Ctrl + uScorri mezza pagina su
Ctrl + dScorri mezza pagina giu
Ctrl + bScorri pagina intera su
Ctrl + fScorri pagina intera giu
ComandoDescrizione
zSalta alla directory con zoxide
ZSalta con zoxide (fzf interattivo)
-Vai alla directory precedente
Ctrl + oTorna indietro nella cronologia di navigazione
Ctrl + iVai avanti nella cronologia di navigazione
ComandoDescrizione
oApri file con programma predefinito
OApri file interattivamente (scegli programma)
EnterApri file o entra nella directory
qEsci da Yazi
QEsci senza scrivere il file cwd
ComandoDescrizione
yCopia (yank) i file selezionati
xTaglia i file selezionati
pIncolla i file copiati/tagliati
PIncolla con sovrascrittura
Y o XAnnulla copia/taglio
- poi pIncolla come symlink (assoluto)
_ poi pIncolla come symlink (relativo)
Ctrl + pIncolla come hardlink
ComandoDescrizione
aCrea nuovo file o directory (/ finale = directory)
rRinomina il file selezionato
cRinomina con cursore alla fine
dSposta i file selezionati nel cestino
DElimina permanentemente i file selezionati
.Attiva/disattiva visibilita file nascosti
Creazione di file e directory:
  a myfile.txt      → Crea un nuovo file
  a mydir/          → Crea una nuova directory (barra finale)
  a path/to/file    → Crea struttura annidata

Rinomina massiva:
  Seleziona piu file → r → Apre $EDITOR
  Ogni riga = un nome file, modifica e salva per rinominare tutti
ComandoDescrizione
SpaceAttiva/disattiva selezione sul file corrente
VEntra in modalita visuale (multi-selezione)
Ctrl + aSeleziona tutti i file
Ctrl + rInverti la selezione
EscapeCancella la selezione
ComandoDescrizione
mSalva la directory corrente come segnalibro
'Vai a un segnalibro
"Elimina un segnalibro
ComandoDescrizione
tCrea nuovo tab nella directory corrente
Ctrl + cChiudi il tab corrente
1 - 9Passa al tab per numero
[Passa al tab precedente
]Passa al tab successivo
{Scambia tab con il precedente
}Scambia tab con il successivo
ComandoDescrizione
/Cerca file nella directory corrente
?Cerca file all’indietro
nVai alla prossima corrispondenza
NVai alla corrispondenza precedente
ComandoDescrizione
fFiltra file (mostra solo quelli corrispondenti)
sCerca file usando fd (ricorsivo)
SCerca contenuto dei file usando ripgrep
: poi digita comandoApri modalita comando
Ricerca file con fd (premi 's'):
  Trova ricorsivamente i file per pattern del nome
  Usa fd internamente per una ricerca veloce
  I risultati vengono mostrati nel selettore — Enter per saltare

Ricerca contenuto con ripgrep (premi 'S'):
  Cerca il contenuto dei file ricorsivamente
  Usa ripgrep per una ricerca veloce del testo
  I risultati mostrano file + riga corrispondente
ComandoDescrizione
Il pannello anteprima mostra il contenuto del fileAutomatico per i tipi supportati
TabAttiva/disattiva visibilita del pannello anteprima
Ctrl + Shift + =Aumenta la larghezza del pannello anteprima
Ctrl + Shift + -Diminuisci la larghezza del pannello anteprima
TipoRequisito
File di testoIntegrato con evidenziazione della sintassi
Immagini (PNG, JPG, GIF)Protocollo Kitty, iTerm2 o Sixel
File SVGImageMagick
Documenti PDFPoppler (pdftoppm)
Miniature videoffmpegthumbnailer
Archivi (zip, tar, ecc.)unar o 7z
MarkdownRendering integrato
JSON/YAMLFormattazione integrata
DirectoryElenco integrato
Protocolli di anteprima immagini (rilevamento automatico):

Kitty    — Terminale Kitty (migliore qualita)
iTerm2   — iTerm2, WezTerm, Mintty
Sixel    — Molti terminali (foot, mlterm, ecc.)
X11/Wayland — Tramite ueberzugpp (fallback)

Imposta il protocollo manualmente in yazi.toml:
  [preview]
  image_quality = 75
ComandoDescrizione
,mOrdina per data di modifica
,MOrdina per data di modifica (invertito)
,cOrdina per data di creazione
,COrdina per data di creazione (invertito)
,eOrdina per estensione
,EOrdina per estensione (invertito)
,sOrdina per dimensione
,SOrdina per dimensione (invertito)
,nOrdina per nome (naturale)
,NOrdina per nome (invertito)
,rOrdinamento casuale
wAttiva/disattiva gestore attivita
TCambia layout (1/2/3 colonne)
FileScopo
~/.config/yazi/yazi.tomlConfigurazione principale
~/.config/yazi/keymap.tomlScorciatoie da tastiera personalizzate
~/.config/yazi/theme.tomlTema colori
~/.config/yazi/init.luaScript init Lua (plugin)
# ~/.config/yazi/yazi.toml

[manager]
ratio = [1, 4, 3]          # Proporzioni colonne (padre, corrente, anteprima)
sort_by = "natural"         # natural, modified, created, extension, size
sort_sensitive = false       # Ordinamento sensibile alle maiuscole
sort_reverse = false         # Ordine inverso
sort_dir_first = true        # Directory prima dei file
linemode = "size"           # none, size, permissions, mtime
show_hidden = false          # Mostra file nascosti
show_symlink = true          # Mostra destinazioni symlink

[preview]
tab_size = 2                # Larghezza tab nelle anteprime
max_width = 600             # Larghezza massima anteprima
max_height = 900            # Altezza massima anteprima
image_quality = 75          # Qualita JPEG per anteprime immagini
sixel_fraction = 15         # Frazione risoluzione Sixel

[opener]
edit = [
  { run = '${EDITOR:-vi} "$@"', block = true, for = "unix" },
  { run = 'code "%*"', orphan = true, for = "windows" },
]

[tasks]
micro_workers = 10          # Operazioni su file piccoli
macro_workers = 25          # Operazioni su file grandi
bizarre_retry = 5           # Riprova in caso di errore
# ~/.config/yazi/keymap.toml

[[manager.prepend_keymap]]
on = ["g", "d"]
run = "cd ~/Downloads"
desc = "Vai ai download"

[[manager.prepend_keymap]]
on = ["g", "p"]
run = "cd ~/projects"
desc = "Vai ai progetti"

[[manager.prepend_keymap]]
on = ["g", "c"]
run = "cd ~/.config"
desc = "Vai alla configurazione"

# Apri terminale nella directory corrente
[[manager.prepend_keymap]]
on = ["!"]
run = 'shell "$SHELL" --block'
desc = "Apri terminale qui"

# Comprimi i file selezionati
[[manager.prepend_keymap]]
on = ["C"]
run = 'shell "zip -r archive.zip $@" --block'
desc = "Comprimi selezione"
# ~/.config/yazi/theme.toml

[filetype]
rules = [
  { name = "*/", fg = "#7aa2f7" },           # Directory
  { mime = "text/*", fg = "#c0caf5" },        # File di testo
  { mime = "image/*", fg = "#bb9af7" },       # Immagini
  { mime = "video/*", fg = "#e0af68" },       # Video
  { mime = "audio/*", fg = "#9ece6a" },       # Audio
  { name = "*.rs", fg = "#ff9e64" },          # File Rust
  { name = "*.py", fg = "#7aa2f7" },          # File Python
  { name = "*.md", fg = "#73daca" },          # Markdown
]
ComandoDescrizione
ya pack -a owner/pluginInstalla un plugin
ya pack -iInstalla tutti i plugin da package.toml
ya pack -uAggiorna tutti i plugin installati
ya pack -lElenca i plugin installati
PluginDescrizione
yazi-rs/plugins:full-borderBordo completo intorno ai pannelli
yazi-rs/plugins:gitIndicatori di stato git
yazi-rs/plugins:chmodCambia permessi dei file
yazi-rs/plugins:max-previewMassimizza il pannello anteprima
yazi-rs/plugins:jump-to-charSalto a carattere stile Vim
DreamMaoMao/searchjump.yaziCerca e salta ai file
# ~/.config/yazi/package.toml
[plugin]
prepend_previewers = [
  { name = "*.md", run = "glow" },
]

# Installa e attiva
# ya pack -a yazi-rs/plugins:full-border
# ya pack -a yazi-rs/plugins:git
# ya pack -i
-- ~/.config/yazi/init.lua
-- Attiva i plugin installati
require("full-border"):setup()
require("git"):setup()
  1. Installa tutte le dipendenze di anteprima — Installa ffmpegthumbnailer, poppler, unar, jq, fd, ripgrep e imagemagick per l’esperienza di anteprima completa. Senza di esse, molti tipi di file mostrano testo grezzo.

  2. Usa il wrapper per la shell — Configura la funzione wrapper y cosi fai cd nell’ultima directory quando esci da Yazi, rendendolo un vero strumento di navigazione invece di un semplice visualizzatore.

  3. Aggiungi segnalibri per le directory — Configura scorciatoie personalizzate per le directory frequenti (g d per Download, g p per progetti) in keymap.toml per navigare istantaneamente.

  4. Abilita l’integrazione con zoxide — Con zoxide installato, premendo z in Yazi puoi saltare in modo fuzzy a qualsiasi directory visitata in precedenza senza navigare manualmente.

  5. Usa i tab per lavorare in piu posizioni — Premi t per aprire nuovi tab quando devi lavorare su piu directory, poi usa 1-9 per passare istantaneamente.

  6. Personalizza le proporzioni delle colonne — Regola ratio = [1, 4, 3] in yazi.toml per bilanciare elenco padre, directory corrente e pannello anteprima per la dimensione del tuo schermo.

  7. Installa il plugin git — Il plugin yazi-rs/plugins:git mostra indicatori di stato git accanto ai file, rendendo facile vedere file modificati, staged e non tracciati.

  8. Usa la modalita visuale per operazioni massive — Premi V per entrare in modalita visuale, poi j/k per estendere la selezione, poi y/x/d per copia/taglia/elimina in blocco.

  9. Configura il tuo tema — Personalizza theme.toml con colori che corrispondono al tema del tuo terminale per un aspetto coerente. Imposta colori diversi per tipo di file per un’identificazione visiva rapida.

  10. Usa la ricerca nel contenuto — Premi S per cercare nel contenuto dei file con ripgrep — e come avere grep -r con un selettore interattivo integrato.