File manager da terminale velocissimo scritto in Rust con I/O asincrono, anteprima immagini, sistema di plugin e supporto multi-tab.
| Comando | Descrizione |
|---|
brew install yazi ffmpegthumbnailer unar jq poppler fd ripgrep fzf zoxide imagemagick | Installazione completa su macOS con tutte le dipendenze di anteprima |
brew install yazi | Installazione minimale su macOS |
cargo install --locked yazi-fm yazi-cli | Installa da crates.io |
pacman -S yazi ffmpegthumbnailer unarchiver jq poppler fd ripgrep fzf zoxide | Installazione completa su Arch Linux |
scoop install yazi | Installa su Windows con Scoop |
winget install sxyazi.yazi | Installa su Windows con winget |
nix-env -i yazi | Installa su NixOS |
snap install yazi --classic | Installa su Ubuntu via Snap |
| Comando | Descrizione |
|---|
yazi | Avvia Yazi nella directory corrente |
yazi /path/to/dir | Apri Yazi in una directory specifica |
yazi --version | Mostra la versione installata |
ya --version | Mostra la versione dell’helper CLI |
yazi --cwd-file=/tmp/cwd | Salva 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
| Comando | Descrizione |
|---|
j o ↓ | Sposta il cursore in basso |
k o ↑ | Sposta il cursore in alto |
h o ← | Vai alla directory padre |
l o → o Enter | Entra nella directory o apri il file |
g g | Vai al primo elemento |
G | Vai all’ultimo elemento |
~ | Vai alla directory home |
Backspace | Vai alla directory padre |
Ctrl + u | Scorri mezza pagina su |
Ctrl + d | Scorri mezza pagina giu |
Ctrl + b | Scorri pagina intera su |
Ctrl + f | Scorri pagina intera giu |
| Comando | Descrizione |
|---|
z | Salta alla directory con zoxide |
Z | Salta con zoxide (fzf interattivo) |
- | Vai alla directory precedente |
Ctrl + o | Torna indietro nella cronologia di navigazione |
Ctrl + i | Vai avanti nella cronologia di navigazione |
| Comando | Descrizione |
|---|
o | Apri file con programma predefinito |
O | Apri file interattivamente (scegli programma) |
Enter | Apri file o entra nella directory |
q | Esci da Yazi |
Q | Esci senza scrivere il file cwd |
| Comando | Descrizione |
|---|
y | Copia (yank) i file selezionati |
x | Taglia i file selezionati |
p | Incolla i file copiati/tagliati |
P | Incolla con sovrascrittura |
Y o X | Annulla copia/taglio |
- poi p | Incolla come symlink (assoluto) |
_ poi p | Incolla come symlink (relativo) |
Ctrl + p | Incolla come hardlink |
| Comando | Descrizione |
|---|
a | Crea nuovo file o directory (/ finale = directory) |
r | Rinomina il file selezionato |
c | Rinomina con cursore alla fine |
d | Sposta i file selezionati nel cestino |
D | Elimina 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
| Comando | Descrizione |
|---|
Space | Attiva/disattiva selezione sul file corrente |
V | Entra in modalita visuale (multi-selezione) |
Ctrl + a | Seleziona tutti i file |
Ctrl + r | Inverti la selezione |
Escape | Cancella la selezione |
| Comando | Descrizione |
|---|
m | Salva la directory corrente come segnalibro |
' | Vai a un segnalibro |
" | Elimina un segnalibro |
| Comando | Descrizione |
|---|
t | Crea nuovo tab nella directory corrente |
Ctrl + c | Chiudi il tab corrente |
1 - 9 | Passa al tab per numero |
[ | Passa al tab precedente |
] | Passa al tab successivo |
{ | Scambia tab con il precedente |
} | Scambia tab con il successivo |
| Comando | Descrizione |
|---|
/ | Cerca file nella directory corrente |
? | Cerca file all’indietro |
n | Vai alla prossima corrispondenza |
N | Vai alla corrispondenza precedente |
| Comando | Descrizione |
|---|
f | Filtra file (mostra solo quelli corrispondenti) |
s | Cerca file usando fd (ricorsivo) |
S | Cerca contenuto dei file usando ripgrep |
: poi digita comando | Apri 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
| Comando | Descrizione |
|---|
| Il pannello anteprima mostra il contenuto del file | Automatico per i tipi supportati |
Tab | Attiva/disattiva visibilita del pannello anteprima |
Ctrl + Shift + = | Aumenta la larghezza del pannello anteprima |
Ctrl + Shift + - | Diminuisci la larghezza del pannello anteprima |
| Tipo | Requisito |
|---|
| File di testo | Integrato con evidenziazione della sintassi |
| Immagini (PNG, JPG, GIF) | Protocollo Kitty, iTerm2 o Sixel |
| File SVG | ImageMagick |
| Documenti PDF | Poppler (pdftoppm) |
| Miniature video | ffmpegthumbnailer |
| Archivi (zip, tar, ecc.) | unar o 7z |
| Markdown | Rendering integrato |
| JSON/YAML | Formattazione integrata |
| Directory | Elenco 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
| Comando | Descrizione |
|---|
,m | Ordina per data di modifica |
,M | Ordina per data di modifica (invertito) |
,c | Ordina per data di creazione |
,C | Ordina per data di creazione (invertito) |
,e | Ordina per estensione |
,E | Ordina per estensione (invertito) |
,s | Ordina per dimensione |
,S | Ordina per dimensione (invertito) |
,n | Ordina per nome (naturale) |
,N | Ordina per nome (invertito) |
,r | Ordinamento casuale |
w | Attiva/disattiva gestore attivita |
T | Cambia layout (1/2/3 colonne) |
| File | Scopo |
|---|
~/.config/yazi/yazi.toml | Configurazione principale |
~/.config/yazi/keymap.toml | Scorciatoie da tastiera personalizzate |
~/.config/yazi/theme.toml | Tema colori |
~/.config/yazi/init.lua | Script 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
]
| Comando | Descrizione |
|---|
ya pack -a owner/plugin | Installa un plugin |
ya pack -i | Installa tutti i plugin da package.toml |
ya pack -u | Aggiorna tutti i plugin installati |
ya pack -l | Elenca i plugin installati |
| Plugin | Descrizione |
|---|
yazi-rs/plugins:full-border | Bordo completo intorno ai pannelli |
yazi-rs/plugins:git | Indicatori di stato git |
yazi-rs/plugins:chmod | Cambia permessi dei file |
yazi-rs/plugins:max-preview | Massimizza il pannello anteprima |
yazi-rs/plugins:jump-to-char | Salto a carattere stile Vim |
DreamMaoMao/searchjump.yazi | Cerca 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()
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.