Gestionnaire de fichiers terminal ultra-rapide écrit en Rust avec E/S asynchrones, aperçu d’images, système de plugins et support multi-onglets.
| Commande | Description |
|---|
brew install yazi ffmpegthumbnailer unar jq poppler fd ripgrep fzf zoxide imagemagick | Installation complète sur macOS avec toutes les dépendances d’aperçu |
brew install yazi | Installation minimale sur macOS |
cargo install --locked yazi-fm yazi-cli | Installer depuis crates.io |
pacman -S yazi ffmpegthumbnailer unarchiver jq poppler fd ripgrep fzf zoxide | Installation complète sur Arch Linux |
scoop install yazi | Installer sur Windows avec Scoop |
winget install sxyazi.yazi | Installer sur Windows avec winget |
nix-env -i yazi | Installer sur NixOS |
snap install yazi --classic | Installer sur Ubuntu via Snap |
| Commande | Description |
|---|
yazi | Lancer Yazi dans le répertoire courant |
yazi /path/to/dir | Ouvrir Yazi dans un répertoire spécifique |
yazi --version | Afficher la version installée |
ya --version | Afficher la version de l’assistant CLI |
yazi --cwd-file=/tmp/cwd | Sauvegarder le dernier répertoire à la sortie |
# Bash/Zsh — ajouter à ~/.bashrc ou ~/.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 — ajouter à ~/.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
| Commande | Description |
|---|
j ou ↓ | Déplacer le curseur vers le bas |
k ou ↑ | Déplacer le curseur vers le haut |
h ou ← | Aller au répertoire parent |
l ou → ou Enter | Entrer dans un répertoire ou ouvrir un fichier |
g g | Aller au premier élément |
G | Aller au dernier élément |
~ | Aller au répertoire personnel |
Backspace | Aller au répertoire parent |
Ctrl + u | Défiler d’une demi-page vers le haut |
Ctrl + d | Défiler d’une demi-page vers le bas |
Ctrl + b | Défiler d’une page complète vers le haut |
Ctrl + f | Défiler d’une page complète vers le bas |
| Commande | Description |
|---|
z | Aller à un répertoire avec zoxide |
Z | Aller avec zoxide (fzf interactif) |
- | Aller au répertoire précédent |
Ctrl + o | Revenir dans l’historique de navigation |
Ctrl + i | Avancer dans l’historique de navigation |
| Commande | Description |
|---|
o | Ouvrir le fichier avec le programme par défaut |
O | Ouvrir le fichier de manière interactive (choisir le programme) |
Enter | Ouvrir le fichier ou entrer dans le répertoire |
q | Quitter Yazi |
Q | Quitter sans écrire le fichier cwd |
| Commande | Description |
|---|
y | Copier les fichiers sélectionnés |
x | Couper les fichiers sélectionnés |
p | Coller les fichiers copiés/coupés |
P | Coller avec écrasement |
Y ou X | Annuler copier/couper |
- puis p | Coller comme lien symbolique (absolu) |
_ puis p | Coller comme lien symbolique (relatif) |
Ctrl + p | Coller comme lien physique |
| Commande | Description |
|---|
a | Créer un nouveau fichier ou répertoire (/ final = répertoire) |
r | Renommer le fichier sélectionné |
c | Renommer avec le curseur à la fin |
d | Mettre les fichiers sélectionnés à la corbeille |
D | Supprimer définitivement les fichiers sélectionnés |
. | Basculer la visibilité des fichiers cachés |
Création de fichiers et répertoires :
a myfile.txt → Crée un nouveau fichier
a mydir/ → Crée un nouveau répertoire (barre oblique finale)
a path/to/file → Crée une structure imbriquée
Renommage en masse :
Sélectionner plusieurs fichiers → r → Ouvre $EDITOR
Chaque ligne = un nom de fichier, modifier et sauvegarder pour tout renommer
| Commande | Description |
|---|
Space | Basculer la sélection sur le fichier courant |
V | Entrer en mode visuel (multi-sélection) |
Ctrl + a | Sélectionner tous les fichiers |
Ctrl + r | Inverser la sélection |
Escape | Effacer la sélection |
| Commande | Description |
|---|
m | Enregistrer le répertoire courant comme signet |
' | Aller à un signet |
" | Supprimer un signet |
| Commande | Description |
|---|
t | Créer un nouvel onglet dans le répertoire courant |
Ctrl + c | Fermer l’onglet courant |
1 - 9 | Passer à l’onglet par numéro |
[ | Passer à l’onglet précédent |
] | Passer à l’onglet suivant |
{ | Échanger l’onglet avec le précédent |
} | Échanger l’onglet avec le suivant |
| Commande | Description |
|---|
/ | Rechercher des fichiers dans le répertoire courant |
? | Rechercher des fichiers en arrière |
n | Aller à la correspondance suivante |
N | Aller à la correspondance précédente |
| Commande | Description |
|---|
f | Filtrer les fichiers (afficher uniquement les correspondances) |
s | Rechercher des fichiers avec fd (récursif) |
S | Rechercher dans le contenu des fichiers avec ripgrep |
: puis taper la commande | Ouvrir le mode commande |
Recherche de fichiers avec fd (appuyer sur 's') :
Trouve récursivement les fichiers par motif de nom
Utilise fd en arrière-plan pour une recherche rapide
Les résultats sont affichés dans un sélecteur — Enter pour aller au fichier
Recherche de contenu avec ripgrep (appuyer sur 'S') :
Recherche le contenu des fichiers récursivement
Utilise ripgrep pour une recherche de texte rapide
Les résultats affichent le fichier + la ligne correspondante
| Commande | Description |
|---|
| Le panneau d’aperçu affiche le contenu des fichiers | Automatique pour les types pris en charge |
Tab | Basculer la visibilité du panneau d’aperçu |
Ctrl + Shift + = | Augmenter la largeur du panneau d’aperçu |
Ctrl + Shift + - | Diminuer la largeur du panneau d’aperçu |
| Type | Prérequis |
|---|
| Fichiers texte | Intégré avec coloration syntaxique |
| Images (PNG, JPG, GIF) | Protocole Kitty, iTerm2 ou Sixel |
| Fichiers SVG | ImageMagick |
| Documents PDF | Poppler (pdftoppm) |
| Miniatures vidéo | ffmpegthumbnailer |
| Archives (zip, tar, etc.) | unar ou 7z |
| Markdown | Rendu intégré |
| JSON/YAML | Formatage intégré |
| Répertoires | Listing intégré |
Protocoles d'aperçu d'images (auto-détectés) :
Kitty — Terminal Kitty (meilleure qualité)
iTerm2 — iTerm2, WezTerm, Mintty
Sixel — Nombreux terminaux (foot, mlterm, etc.)
X11/Wayland — Via ueberzugpp (solution de repli)
Définir le protocole manuellement dans yazi.toml :
[preview]
image_quality = 75
| Commande | Description |
|---|
,m | Trier par date de modification |
,M | Trier par date de modification (inversé) |
,c | Trier par date de création |
,C | Trier par date de création (inversé) |
,e | Trier par extension |
,E | Trier par extension (inversé) |
,s | Trier par taille |
,S | Trier par taille (inversé) |
,n | Trier par nom (naturel) |
,N | Trier par nom (inversé) |
,r | Tri aléatoire |
w | Basculer le gestionnaire de tâches |
T | Basculer la disposition (1/2/3 colonnes) |
| Fichier | Objectif |
|---|
~/.config/yazi/yazi.toml | Configuration principale |
~/.config/yazi/keymap.toml | Raccourcis clavier personnalisés |
~/.config/yazi/theme.toml | Thème de couleurs |
~/.config/yazi/init.lua | Script d’initialisation Lua (plugins) |
# ~/.config/yazi/yazi.toml
[manager]
ratio = [1, 4, 3] # Ratios des colonnes (parent, courant, aperçu)
sort_by = "natural" # natural, modified, created, extension, size
sort_sensitive = false # Tri sensible à la casse
sort_reverse = false # Inverser l'ordre de tri
sort_dir_first = true # Répertoires avant les fichiers
linemode = "size" # none, size, permissions, mtime
show_hidden = false # Afficher les fichiers cachés
show_symlink = true # Afficher les cibles des liens symboliques
[preview]
tab_size = 2 # Largeur de tabulation dans les aperçus
max_width = 600 # Largeur maximale de l'aperçu
max_height = 900 # Hauteur maximale de l'aperçu
image_quality = 75 # Qualité JPEG pour les aperçus d'images
sixel_fraction = 15 # Fraction de résolution Sixel
[opener]
edit = [
{ run = '${EDITOR:-vi} "$@"', block = true, for = "unix" },
{ run = 'code "%*"', orphan = true, for = "windows" },
]
[tasks]
micro_workers = 10 # Opérations sur petits fichiers
macro_workers = 25 # Opérations sur gros fichiers
bizarre_retry = 5 # Nouvelle tentative en cas d'erreur
# ~/.config/yazi/keymap.toml
[[manager.prepend_keymap]]
on = ["g", "d"]
run = "cd ~/Downloads"
desc = "Aller aux téléchargements"
[[manager.prepend_keymap]]
on = ["g", "p"]
run = "cd ~/projects"
desc = "Aller aux projets"
[[manager.prepend_keymap]]
on = ["g", "c"]
run = "cd ~/.config"
desc = "Aller à la configuration"
# Ouvrir un terminal dans le répertoire courant
[[manager.prepend_keymap]]
on = ["!"]
run = 'shell "$SHELL" --block'
desc = "Ouvrir le terminal ici"
# Compresser les fichiers sélectionnés
[[manager.prepend_keymap]]
on = ["C"]
run = 'shell "zip -r archive.zip $@" --block'
desc = "Compresser la sélection"
# ~/.config/yazi/theme.toml
[filetype]
rules = [
{ name = "*/", fg = "#7aa2f7" }, # Répertoires
{ mime = "text/*", fg = "#c0caf5" }, # Fichiers texte
{ mime = "image/*", fg = "#bb9af7" }, # Images
{ mime = "video/*", fg = "#e0af68" }, # Vidéos
{ mime = "audio/*", fg = "#9ece6a" }, # Audio
{ name = "*.rs", fg = "#ff9e64" }, # Fichiers Rust
{ name = "*.py", fg = "#7aa2f7" }, # Fichiers Python
{ name = "*.md", fg = "#73daca" }, # Markdown
]
| Commande | Description |
|---|
ya pack -a owner/plugin | Installer un plugin |
ya pack -i | Installer tous les plugins depuis package.toml |
ya pack -u | Mettre à jour tous les plugins installés |
ya pack -l | Lister les plugins installés |
| Plugin | Description |
|---|
yazi-rs/plugins:full-border | Bordure complète autour des panneaux |
yazi-rs/plugins:git | Indicateurs de statut git |
yazi-rs/plugins:chmod | Modifier les permissions des fichiers |
yazi-rs/plugins:max-preview | Maximiser le panneau d’aperçu |
yazi-rs/plugins:jump-to-char | Saut vers un caractère style Vim |
DreamMaoMao/searchjump.yazi | Rechercher et aller à des fichiers |
# ~/.config/yazi/package.toml
[plugin]
prepend_previewers = [
{ name = "*.md", run = "glow" },
]
# Installer et activer
# ya pack -a yazi-rs/plugins:full-border
# ya pack -a yazi-rs/plugins:git
# ya pack -i
-- ~/.config/yazi/init.lua
-- Activer les plugins installés
require("full-border"):setup()
require("git"):setup()
-
Installer toutes les dépendances d’aperçu — Installez ffmpegthumbnailer, poppler, unar, jq, fd, ripgrep et imagemagick pour l’expérience d’aperçu complète. Sans eux, de nombreux types de fichiers affichent du texte brut.
-
Utiliser le wrapper shell — Configurez la fonction wrapper y pour que vous fassiez cd vers le dernier répertoire en quittant Yazi, ce qui en fait un véritable outil de navigation plutôt qu’un simple visualiseur.
-
Ajouter des signets de répertoires — Configurez des raccourcis personnalisés pour les répertoires fréquents (g d pour Downloads, g p pour projects) dans keymap.toml pour naviguer instantanément.
-
Activer l’intégration zoxide — Avec zoxide installé, appuyer sur z dans Yazi vous permet de sauter en recherche floue vers n’importe quel répertoire précédemment visité sans navigation manuelle.
-
Utiliser les onglets pour le travail multi-emplacements — Appuyez sur t pour ouvrir de nouveaux onglets quand vous devez travailler sur plusieurs répertoires, puis utilisez 1-9 pour basculer instantanément.
-
Personnaliser les ratios de colonnes — Ajustez ratio = [1, 4, 3] dans yazi.toml pour équilibrer la liste du parent, le répertoire courant et le panneau d’aperçu selon votre taille d’écran.
-
Installer le plugin git — Le plugin yazi-rs/plugins:git affiche les indicateurs de statut git à côté des fichiers, facilitant la visualisation des fichiers modifiés, indexés et non suivis.
-
Utiliser le mode visuel pour les opérations en masse — Appuyez sur V pour entrer en mode visuel, puis j/k pour étendre la sélection, puis y/x/d pour copier/couper/supprimer en masse.
-
Configurer votre thème — Personnalisez theme.toml avec des couleurs qui correspondent à votre thème de terminal pour un aspect cohérent. Définissez des couleurs différentes par type de fichier pour une identification visuelle rapide.
-
Utiliser la recherche de contenu — Appuyez sur S pour rechercher dans le contenu des fichiers avec ripgrep — c’est comme avoir grep -r avec un sélecteur de fichiers interactif intégré.