DevOps sync (2026-05-21): - Remove onlyoffice-desktopeditors from absent list (actively used) - Add gnome-keyring, rbw to common role (secrets migration) - Add perl-image-exiftool, icoutils, innoextract-git to dev-tools (Windows installer inspection) - Create fonts role: Inter, Cascadia Code, Fira, Source Sans, TeX Gyre - Create pdf role: zathura, zathura-pdf-mupdf, python-weasyprint - Register new roles in workstation.yml PDF comparison: - Add pdf-comparison docs with Quarto/Typst/Pandoc outputs - Add batch-pdf.sh script - Update yazi-cheatsheet.md - Ignore .quarto/ cache
168 lines
4.2 KiB
Markdown
168 lines
4.2 KiB
Markdown
---
|
|
title: "Yazi v26.5.6 Cheatsheet"
|
|
author: "mw-pfeddersheim-workstation"
|
|
date: "May 2026"
|
|
---
|
|
|
|
# Yazi Cheatsheet
|
|
|
|
**Version:** 26.5.6 (Arch Linux 2026-05-10) **Config:** `~/.config/yazi/`
|
|
|
|
## Quick Start
|
|
|
|
| Key | Action |
|
|
|-----|--------|
|
|
| `yazi` | Launch Yazi |
|
|
| `y` | Shell wrapper (cd persists on exit) |
|
|
| `q` | Quit normal (apply cwd) |
|
|
| `Q` | Quit without cwd change |
|
|
| `F1` | Show help |
|
|
|
|
## Navigation
|
|
|
|
| Key | Action |
|
|
|-----|--------|
|
|
| `h` | Parent directory |
|
|
| `l` | Enter dir / open file |
|
|
| `j` / `k` | Down / Up |
|
|
| `H` / `L` | History back / forward |
|
|
| `Enter` | Open hovered file |
|
|
| `Tab` | Toggle file details |
|
|
| `.` | Toggle hidden files |
|
|
| `~` | Home directory (DE: Shift+^+Space) |
|
|
| `g g` | Go to top |
|
|
| `G` | Go to bottom |
|
|
|
|
## Search
|
|
|
|
| Key | Action |
|
|
|-----|--------|
|
|
| `/` | Search forward |
|
|
| `?` | Search backward |
|
|
| `n` / `N` | Next / previous match |
|
|
| `f` | Interactive filter (fuzzy) |
|
|
| `S` | Search with fd |
|
|
|
|
## File Operations
|
|
|
|
| Key | Action |
|
|
|-----|--------|
|
|
| `Space` | Toggle selection |
|
|
| `v` | Visual mode range select |
|
|
| `Ctrl+A` | Select all |
|
|
| `Esc` | Clear selection |
|
|
| `y` | Yank (copy) |
|
|
| `p` | Paste |
|
|
| `X` | Cut |
|
|
| `x` | Undo cut |
|
|
| `D` | Delete to trash |
|
|
| `Shift+D` | Permanent delete |
|
|
| `a` | New file |
|
|
| `Shift+A` | New directory |
|
|
| `R` | Rename |
|
|
| `Shift+R` | Bulk rename |
|
|
| `O` | "Open with..." menu |
|
|
|
|
## Sorting (comma prefix)
|
|
|
|
| Key | Action |
|
|
|-----|--------|
|
|
| `, m` | Modified (newest) |
|
|
| `, M` | Modified reverse |
|
|
| `, c` | Created (newest) |
|
|
| `, C` | Created reverse |
|
|
| `, e` | Extension (alpha) |
|
|
| `, a` | Alphabetic |
|
|
| `, s` | Size (largest) |
|
|
| `, S` | Size (smallest, reverse) |
|
|
|
|
## Tabs
|
|
|
|
| Key | Action |
|
|
|-----|--------|
|
|
| `t` | New tab |
|
|
| `1` ... `9` | Switch to tab |
|
|
| `[` / `]` | Prev / next tab |
|
|
| `W` | Close tab |
|
|
|
|
## Shell & Commands
|
|
|
|
| Key | Action |
|
|
|-----|--------|
|
|
| `!` | Drop into shell here |
|
|
| `:` | Command line |
|
|
| `Ctrl+S` | Run shell command |
|
|
|
|
## Emit Commands (`:` prefix)
|
|
|
|
| Command | Action |
|
|
|---------|--------|
|
|
| `:cd <path>` | Change directory |
|
|
| `:reveal` | Reveal file in parent dir |
|
|
| `:tab_create` | Open new tab |
|
|
| `:tab_switch N` | Switch to tab N |
|
|
| `:quit` | Quit Yazi |
|
|
| `:yank` | Yank selected |
|
|
| `:paste` | Paste yanked |
|
|
| `:remove` | Trash |
|
|
| `:rename` | Rename hovered |
|
|
| `:shell <cmd>` | Run shell command |
|
|
|
|
## Power Tricks
|
|
|
|
### 1. Shell Wrapper (cd persists)
|
|
Use the `y` wrapper instead of raw `yazi` so your shell cds into the directory you navigated to on exit.
|
|
|
|
### 2. Clipboard on Yank (Wayland)
|
|
Bind `y` in `keymap.toml` to `wl-copy -t text/uri-list` then yank for system clipboard integration.
|
|
|
|
### 3. Git Root Jump
|
|
Bind `g r` to `ya emit cd "$(git rev-parse --show-toplevel)"`
|
|
|
|
### 4. Escape Closes Input
|
|
In `keymap.toml` input section: map `Esc` to `close` (skip vim mode).
|
|
|
|
### 5. Disable Image Previews
|
|
In `yazi.toml` `plugin` section: `preloaders = []` and `previewers = []`.
|
|
For network mounts: `url = /remote/** run = noop`.
|
|
|
|
### 6. Hostname in Header
|
|
In `init.lua`: `Header:children_add` with `user_name()` + `host_name()` spans.
|
|
|
|
### 7. Show Symlink Target in Status Bar
|
|
In `init.lua`: `Status:children_add` with `h.link_to`.
|
|
|
|
## Configuration Files
|
|
|
|
| File | Purpose |
|
|
|------|---------|
|
|
| `keymap.toml` | Custom key bindings |
|
|
| `yazi.toml` | Behavior, preview rules, openers |
|
|
| `theme.toml` | Colors and UI theme |
|
|
| `init.lua` | Lua startup script |
|
|
| `plugins/` | Plugin directory |
|
|
|
|
## Recommended Plugins
|
|
|
|
| Plugin | Purpose |
|
|
|--------|---------|
|
|
| `smart-enter` | One key: open file or enter dir |
|
|
| `smart-paste` | Paste without entering dir |
|
|
| `smart-tab` | New tab + enter hovered dir |
|
|
| `toggle-pane` | Maximize / hide preview pane |
|
|
| `full-border` | Full panel borders |
|
|
| `confirm-quit` | Confirm on multi-tab |
|
|
| `zoxide` | Zoxide dir jumping |
|
|
| `chmod` | Change file permissions |
|
|
|
|
## Daily Drill
|
|
|
|
| Area | Keys |
|
|
|------|------|
|
|
| **Nav** | `j/k` move / `l` enter / `h` back |
|
|
| **Files** | `Space` select / `y` copy / `p` paste / `X` cut |
|
|
| **Delete** | `D` trash / `R` rename / `a` create |
|
|
| **Search** | `/` search / `f` filter / `g` top / `G` bottom |
|
|
| **Tabs** | `t` new / `1-9` switch / `W` close |
|
|
| **Misc** | `!` shell / `q` quit / `F1` help |
|