Blitzschneller Terminal-Dateimanager geschrieben in Rust mit asynchroner I/O, Bildvorschau, Plugin-System und Multi-Tab-Unterstützung.
| Befehl | Beschreibung |
|---|
brew install yazi ffmpegthumbnailer unar jq poppler fd ripgrep fzf zoxide imagemagick | Vollständige Installation auf macOS mit allen Vorschau-Abhängigkeiten |
brew install yazi | Minimale Installation auf macOS |
cargo install --locked yazi-fm yazi-cli | Installation von crates.io |
pacman -S yazi ffmpegthumbnailer unarchiver jq poppler fd ripgrep fzf zoxide | Vollständige Installation auf Arch Linux |
scoop install yazi | Installation auf Windows mit Scoop |
winget install sxyazi.yazi | Installation auf Windows mit winget |
nix-env -i yazi | Installation auf NixOS |
snap install yazi --classic | Installation auf Ubuntu via Snap |
| Befehl | Beschreibung |
|---|
yazi | Yazi im aktuellen Verzeichnis starten |
yazi /path/to/dir | Yazi in bestimmtem Verzeichnis öffnen |
yazi --version | Installierte Version anzeigen |
ya --version | CLI-Helfer-Version anzeigen |
yazi --cwd-file=/tmp/cwd | Letztes Verzeichnis beim Beenden speichern |
# Bash/Zsh — zu ~/.bashrc oder ~/.zshrc hinzufügen
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 — zu ~/.config/fish/config.fish hinzufügen
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
| Befehl | Beschreibung |
|---|
j oder ↓ | Cursor nach unten bewegen |
k oder ↑ | Cursor nach oben bewegen |
h oder ← | Zum übergeordneten Verzeichnis wechseln |
l oder → oder Enter | Verzeichnis betreten oder Datei öffnen |
g g | Zum ersten Element springen |
G | Zum letzten Element springen |
~ | Zum Home-Verzeichnis wechseln |
Backspace | Zum übergeordneten Verzeichnis wechseln |
Ctrl + u | Halbe Seite nach oben scrollen |
Ctrl + d | Halbe Seite nach unten scrollen |
Ctrl + b | Ganze Seite nach oben scrollen |
Ctrl + f | Ganze Seite nach unten scrollen |
| Befehl | Beschreibung |
|---|
z | Mit zoxide zum Verzeichnis springen |
Z | Mit zoxide springen (interaktives fzf) |
- | Zum vorherigen Verzeichnis wechseln |
Ctrl + o | Im Navigationsverlauf zurück |
Ctrl + i | Im Navigationsverlauf vorwärts |
| Befehl | Beschreibung |
|---|
o | Datei mit Standardprogramm öffnen |
O | Datei interaktiv öffnen (Programm wählen) |
Enter | Datei öffnen oder Verzeichnis betreten |
q | Yazi beenden |
Q | Beenden ohne cwd-file zu schreiben |
| Befehl | Beschreibung |
|---|
y | Ausgewählte Dateien kopieren (yank) |
x | Ausgewählte Dateien ausschneiden |
p | Kopierte/ausgeschnittene Dateien einfügen |
P | Mit Überschreiben einfügen |
Y oder X | Kopieren/Ausschneiden abbrechen |
- dann p | Als Symlink einfügen (absolut) |
_ dann p | Als Symlink einfügen (relativ) |
Ctrl + p | Als Hardlink einfügen |
| Befehl | Beschreibung |
|---|
a | Neue Datei oder Verzeichnis erstellen (abschließender / = Verzeichnis) |
r | Ausgewählte Datei umbenennen |
c | Umbenennen mit Cursor am Ende |
d | Ausgewählte Dateien in den Papierkorb verschieben |
D | Ausgewählte Dateien dauerhaft löschen |
. | Sichtbarkeit versteckter Dateien umschalten |
Dateien und Verzeichnisse erstellen:
a myfile.txt → Erstellt eine neue Datei
a mydir/ → Erstellt ein neues Verzeichnis (abschließender Schrägstrich)
a path/to/file → Erstellt verschachtelte Struktur
Massenumbenennung:
Mehrere Dateien auswählen → r → Öffnet $EDITOR
Jede Zeile = ein Dateiname, bearbeiten und speichern um alle umzubenennen
| Befehl | Beschreibung |
|---|
Space | Auswahl der aktuellen Datei umschalten |
V | Visuellen (Mehrfachauswahl-) Modus aktivieren |
Ctrl + a | Alle Dateien auswählen |
Ctrl + r | Auswahl umkehren |
Escape | Auswahl aufheben |
| Befehl | Beschreibung |
|---|
m | Aktuelles Verzeichnis als Lesezeichen speichern |
' | Zu einem Lesezeichen springen |
" | Ein Lesezeichen löschen |
| Befehl | Beschreibung |
|---|
t | Neuen Tab im aktuellen Verzeichnis erstellen |
Ctrl + c | Aktuellen Tab schließen |
1 - 9 | Zum Tab nach Nummer wechseln |
[ | Zum vorherigen Tab wechseln |
] | Zum nächsten Tab wechseln |
{ | Tab mit vorherigem tauschen |
} | Tab mit nächstem tauschen |
| Befehl | Beschreibung |
|---|
/ | Dateien im aktuellen Verzeichnis suchen |
? | Dateien rückwärts suchen |
n | Zum nächsten Suchergebnis springen |
N | Zum vorherigen Suchergebnis springen |
| Befehl | Beschreibung |
|---|
f | Dateien filtern (nur übereinstimmende anzeigen) |
s | Dateien mit fd suchen (rekursiv) |
S | Dateiinhalte mit ripgrep durchsuchen |
: dann Befehl eingeben | Befehlsmodus öffnen |
Dateisuche mit fd (Taste 's'):
Findet Dateien rekursiv nach Namensmuster
Verwendet fd im Hintergrund für schnelle Suche
Ergebnisse werden im Picker angezeigt — Enter zum Springen
Inhaltssuche mit ripgrep (Taste 'S'):
Durchsucht Dateiinhalte rekursiv
Verwendet ripgrep für schnelle Textsuche
Ergebnisse zeigen Datei + übereinstimmende Zeile
| Befehl | Beschreibung |
|---|
| Vorschau-Panel zeigt Dateiinhalte | Automatisch für unterstützte Typen |
Tab | Vorschau-Panel ein-/ausblenden |
Ctrl + Shift + = | Vorschau-Panel-Breite erhöhen |
Ctrl + Shift + - | Vorschau-Panel-Breite verringern |
| Typ | Voraussetzung |
|---|
| Textdateien | Integriert mit Syntaxhervorhebung |
| Bilder (PNG, JPG, GIF) | Kitty-, iTerm2- oder Sixel-Protokoll |
| SVG-Dateien | ImageMagick |
| PDF-Dokumente | Poppler (pdftoppm) |
| Video-Thumbnails | ffmpegthumbnailer |
| Archive (zip, tar, etc.) | unar oder 7z |
| Markdown | Integriertes Rendering |
| JSON/YAML | Integrierte Formatierung |
| Verzeichnisse | Integrierte Auflistung |
Bildvorschau-Protokolle (automatisch erkannt):
Kitty — Kitty Terminal (beste Qualität)
iTerm2 — iTerm2, WezTerm, Mintty
Sixel — Viele Terminals (foot, mlterm, etc.)
X11/Wayland — Via ueberzugpp (Fallback)
Protokoll manuell in yazi.toml setzen:
[preview]
image_quality = 75
| Befehl | Beschreibung |
|---|
,m | Nach Änderungsdatum sortieren |
,M | Nach Änderungsdatum sortieren (umgekehrt) |
,c | Nach Erstellungsdatum sortieren |
,C | Nach Erstellungsdatum sortieren (umgekehrt) |
,e | Nach Erweiterung sortieren |
,E | Nach Erweiterung sortieren (umgekehrt) |
,s | Nach Größe sortieren |
,S | Nach Größe sortieren (umgekehrt) |
,n | Nach Name sortieren (natürlich) |
,N | Nach Name sortieren (umgekehrt) |
,r | Zufällig sortieren |
w | Aufgabenverwaltung umschalten |
T | Layout umschalten (1/2/3 Spalten) |
| Datei | Zweck |
|---|
~/.config/yazi/yazi.toml | Hauptkonfiguration |
~/.config/yazi/keymap.toml | Benutzerdefinierte Tastenbelegungen |
~/.config/yazi/theme.toml | Farbthema |
~/.config/yazi/init.lua | Lua-Init-Skript (Plugins) |
# ~/.config/yazi/yazi.toml
[manager]
ratio = [1, 4, 3] # Spaltenverhältnisse (Eltern, Aktuell, Vorschau)
sort_by = "natural" # natural, modified, created, extension, size
sort_sensitive = false # Groß-/Kleinschreibung bei Sortierung
sort_reverse = false # Sortierreihenfolge umkehren
sort_dir_first = true # Verzeichnisse vor Dateien
linemode = "size" # none, size, permissions, mtime
show_hidden = false # Versteckte Dateien anzeigen
show_symlink = true # Symlink-Ziele anzeigen
[preview]
tab_size = 2 # Tab-Breite in Vorschauen
max_width = 600 # Maximale Vorschaubreite
max_height = 900 # Maximale Vorschauhöhe
image_quality = 75 # JPEG-Qualität für Bildvorschauen
sixel_fraction = 15 # Sixel-Auflösungsfraktion
[opener]
edit = [
{ run = '${EDITOR:-vi} "$@"', block = true, for = "unix" },
{ run = 'code "%*"', orphan = true, for = "windows" },
]
[tasks]
micro_workers = 10 # Kleine Dateioperationen
macro_workers = 25 # Große Dateioperationen
bizarre_retry = 5 # Wiederholung bei Fehler
# ~/.config/yazi/keymap.toml
[[manager.prepend_keymap]]
on = ["g", "d"]
run = "cd ~/Downloads"
desc = "Zu Downloads wechseln"
[[manager.prepend_keymap]]
on = ["g", "p"]
run = "cd ~/projects"
desc = "Zu Projekten wechseln"
[[manager.prepend_keymap]]
on = ["g", "c"]
run = "cd ~/.config"
desc = "Zur Konfiguration wechseln"
# Terminal im aktuellen Verzeichnis öffnen
[[manager.prepend_keymap]]
on = ["!"]
run = 'shell "$SHELL" --block'
desc = "Terminal hier öffnen"
# Ausgewählte Dateien komprimieren
[[manager.prepend_keymap]]
on = ["C"]
run = 'shell "zip -r archive.zip $@" --block'
desc = "Auswahl komprimieren"
# ~/.config/yazi/theme.toml
[filetype]
rules = [
{ name = "*/", fg = "#7aa2f7" }, # Verzeichnisse
{ mime = "text/*", fg = "#c0caf5" }, # Textdateien
{ mime = "image/*", fg = "#bb9af7" }, # Bilder
{ mime = "video/*", fg = "#e0af68" }, # Videos
{ mime = "audio/*", fg = "#9ece6a" }, # Audio
{ name = "*.rs", fg = "#ff9e64" }, # Rust-Dateien
{ name = "*.py", fg = "#7aa2f7" }, # Python-Dateien
{ name = "*.md", fg = "#73daca" }, # Markdown
]
| Befehl | Beschreibung |
|---|
ya pack -a owner/plugin | Plugin installieren |
ya pack -i | Alle Plugins aus package.toml installieren |
ya pack -u | Alle installierten Plugins aktualisieren |
ya pack -l | Installierte Plugins auflisten |
| Plugin | Beschreibung |
|---|
yazi-rs/plugins:full-border | Vollständiger Rahmen um Panels |
yazi-rs/plugins:git | Git-Statusindikatoren |
yazi-rs/plugins:chmod | Dateiberechtigungen ändern |
yazi-rs/plugins:max-preview | Vorschau-Panel maximieren |
yazi-rs/plugins:jump-to-char | Vim-artiges Springen zu Zeichen |
DreamMaoMao/searchjump.yazi | Suche und Sprung zu Dateien |
# ~/.config/yazi/package.toml
[plugin]
prepend_previewers = [
{ name = "*.md", run = "glow" },
]
# Installieren und aktivieren
# ya pack -a yazi-rs/plugins:full-border
# ya pack -a yazi-rs/plugins:git
# ya pack -i
-- ~/.config/yazi/init.lua
-- Installierte Plugins aktivieren
require("full-border"):setup()
require("git"):setup()
-
Alle Vorschau-Abhängigkeiten installieren — ffmpegthumbnailer, poppler, unar, jq, fd, ripgrep und imagemagick für das vollständige Vorschauerlebnis installieren. Ohne sie zeigen viele Dateitypen nur Rohtext.
-
Shell-Wrapper verwenden — Die y-Funktions-Wrapper einrichten, damit beim Beenden von Yazi ins letzte Verzeichnis gewechselt wird, was es zu einem echten Navigationstool statt nur einem Betrachter macht.
-
Verzeichnis-Lesezeichen hinzufügen — Benutzerdefinierte Tastenbelegungen für häufige Verzeichnisse konfigurieren (g d für Downloads, g p für Projekte) in keymap.toml für sofortige Navigation.
-
Zoxide-Integration aktivieren — Mit installiertem zoxide kann man in Yazi durch Drücken von z zu jedem zuvor besuchten Verzeichnis fuzzy-springen, ohne manuell zu navigieren.
-
Tabs für Multi-Location-Arbeit verwenden — t drücken um neue Tabs zu öffnen, wenn über mehrere Verzeichnisse gearbeitet werden muss, dann 1-9 zum sofortigen Wechseln verwenden.
-
Spaltenverhältnisse anpassen — ratio = [1, 4, 3] in yazi.toml anpassen, um Elternauflistung, aktuelles Verzeichnis und Vorschau-Panel für die eigene Bildschirmgröße auszubalancieren.
-
Git-Plugin installieren — Das yazi-rs/plugins:git-Plugin zeigt Git-Statusindikatoren neben Dateien, was es einfach macht, geänderte, vorgemerkte und unverfolgte Dateien zu erkennen.
-
Visuellen Modus für Massenoperationen verwenden — V drücken um den visuellen Modus zu aktivieren, dann j/k zum Erweitern der Auswahl, dann y/x/d für Stapel-Kopieren/Ausschneiden/Löschen.
-
Thema anpassen — theme.toml mit Farben anpassen, die zum Terminal-Thema passen, für ein einheitliches Erscheinungsbild. Verschiedene Farben pro Dateityp für schnelle visuelle Identifikation setzen.
-
Inhaltssuche verwenden — S drücken um Dateiinhalte mit ripgrep zu durchsuchen — es ist wie grep -r mit einem eingebauten interaktiven Datei-Picker.