Complete Guide to Dvorak Keyboard + Vim Logic + Yazi File Manager
While configuring the Yazi file manager, I realized I wasn’t familiar with Vim terminology (yank/paste/visual mode). As a Dvorak keyboard user, I also needed to understand how keyboard layouts affect terminal tools. This article is my complete guide.
Part 1: What is the Dvorak Keyboard Layout?
Background
Most people use the QWERTY layout (look at the first six letters in the top left of your keyboard). QWERTY was designed in 1873 for typewriters, with the goal of reducing mechanical jams, not typing efficiency.
Dvorak (invented by August Dvorak in 1936) is a keyboard layout optimized for typing efficiency and ergonomics:
- The most commonly used letters are placed on the home row, so fingers don’t need to move frequently
- Vowels (A, O, E, U, I) are on the left hand’s home row
- Common consonants (D, H, T, N, S) are on the right hand’s home row
- Theoretically, 70% of English typing happens on the home row (QWERTY only achieves 32%)
QWERTY vs Dvorak Comparison
QWERTY:
Q W E R T Y U I O P
A S D F G H J K L ;
Z X C V B N M , . /
Dvorak:
' , . P Y F G C R L
A O E U I D H T N S
; Q J K X B M W V Z
Impact on Terminal Tools
Key point: Vim/Yazi shortcuts are designed by letter meaning, not physical position.
j= down,k= up — these are in completely different physical positions on Dvorak compared to QWERTY- But since you’re pressing the letter j/k (regardless of where it is on the keyboard), the function is the same
- macOS keyboard settings handle the mapping, so you just need to remember the letters
Option Key Configuration
In Ghostty configuration, macos-option-as-alt = left makes the left Option key work as Alt (for tmux/vim), while the right Option preserves German special character input. This is compatible with Dvorak.
Part 2: Vim Operation Logic (Yazi Inherits This System)
All Yazi shortcuts come from Vim editor’s operational philosophy. Understanding Vim’s logic means understanding Yazi.
2.1 Vim’s Core Concept: Verb + Noun
Vim isn’t “press one key to do one thing” — it’s combined commands:
action(verb) + object(noun) = operation
Examples:
d(delete) +w(word) = delete one wordy(yank) +3j(3 lines down) = copy 3 lines
2.2 Modes
Vim has multiple modes, and Yazi inherits some of them:
| Mode | In Vim | In Yazi |
|---|---|---|
| Normal | Default mode, execute commands | Default mode, browse files |
| Insert | Input text | N/A (Yazi doesn’t edit files) |
| Visual | Select text regions | Press v to enter, use arrow keys to select multiple files |
| Command | Commands starting with : | N/A |
2.3 Vim Terminology → Yazi Reference Table
This is the most important part. Vim has its own terminology, different from everyday language:
| Vim Term | Common Term | Yazi Function | Key |
|---|---|---|---|
| yank | Copy (Ctrl+C) | Mark files for copying | y |
| unyank | Cancel copy | Clear copy marks | Y |
| cut | Cut (Ctrl+X) | Mark files for moving | x |
| paste | Paste (Ctrl+V) | Execute copy/move to current directory | p |
| delete/remove | Delete | Move to trash | d |
| toggle | Select/deselect | Mark file (for multi-select) | Space |
| visual mode | Batch select | Enter continuous selection mode | v |
| escape | Cancel | Cancel selection/search/filter | Esc |
2.4 Why “yank” Instead of “copy”?
Historical reason: When vi (Vim’s predecessor, 1976) was designed, c was already used for the “change” command. So y (yank = pull forcefully) was used for copy. This terminology has persisted.
2.5 Yank vs Select (Easily Confused)
| Operation | Key | Effect | Top-right Display | Cancel Method |
|---|---|---|---|---|
| Select | Space | Mark file (blue highlight) for batch operations | Number (white) | Esc |
| Yank (copy) | y | Mark files for copying to another directory | Number (green) | Y |
| Cut | x | Mark files for moving to another directory | Number (red) | Y |
Workflow example — copying 3 files to another directory:
Spaceto select the first filejto move to nextSpaceto select the second filejto move againSpaceto select the third fileyto yank (copy mark) all selected files- Navigate to target directory (
hto go up,lto enter subdirectory) pto paste (actually perform the file copy)
Part 3: Complete Yazi Operation Manual
3.1 Navigation
| Key | Function | Mnemonic |
|---|---|---|
j | Move down one line | j’s tail points down |
k | Move up one line | k’s head points up |
J | Move down 5 lines | Uppercase = faster |
K | Move up 5 lines | Uppercase = faster |
l or Enter | Enter directory / Open file | l = right (enter) |
h | Go to parent directory | h = left (back) |
g g | Jump to top of list | go to top |
G | Jump to bottom of list | Go to bottom |
3.2 Search and Filter
| Key | Function |
|---|---|
/ | Filter current directory (enter keywords, show only matching files) |
s | Search filenames (using fd, across subdirectories) |
S | Search file contents (using ripgrep) |
f | Find, incrementally jump to matching file |
3.3 File Operations
| Key | Function | Notes |
|---|---|---|
y | Copy (yank) file | Just marks, doesn’t copy yet |
Y | Cancel copy mark (unyank) | |
x | Cut file | Just marks, doesn’t move yet |
p | Paste (execute copy/move) | Press after navigating to target |
d | Delete (move to trash) | Shows confirmation |
D | Permanently delete | Dangerous! Cannot recover |
a | Create new file/directory | Name ending with / = directory |
r | Rename | |
Space | Select/deselect | Select before batch operations |
3.4 Preview and View
| Key | Function |
|---|---|
Tab | Open Spot (detailed info panel) |
Arrow keys or J/K (in preview) | Scroll preview content |
. | Show/hide hidden files |
3.5 Custom Quick Navigation
| Key | Directory |
|---|---|
~ | Home directory |
g p | ~/Projects_WSL |
g d | ~/Downloads |
g b | ~/Blog |
g s | ~/secretary |
3.6 Tabs
| Key | Function |
|---|---|
t | New tab |
1-9 | Switch to tab N |
[ / ] | Previous/next tab |
3.7 Copy File Path (Not the File Itself)
| Key Sequence | Copies |
|---|---|
c c | Full file path |
c d | Directory path |
c f | Filename |
c n | Filename (without extension) |
3.8 Sorting
| Key Sequence | Sort By |
|---|---|
, m | Modification time |
, s | Size |
, a | Alphabetical |
, n | Natural sort |
, e | Extension |
Part 4: Ghostty Split Screen Operations
| Shortcut | Function |
|---|---|
Cmd+D | New split on right |
Cmd+Shift+D | New split below |
Cmd+Left/Right/Up/Down | Switch focus between splits |
Cmd+Shift+H | Expand current split left |
Cmd+Shift+L | Expand current split right |
Cmd+Shift+F | Fullscreen/restore current split |
Cmd+Shift+, | Hot reload configuration |
Part 5: Common Pitfalls and Confusion Points
5.1 Escape Doesn’t Clear Yank
Escape only clears: selection (Space), search, filter, Visual mode.
To clear yank, you must use Y (uppercase).
5.2 y Doesn’t Copy Immediately
y only “marks” — the actual copy happens when you press p. This is different from Finder (where Cmd+C also marks, but feels like “immediate copy”).
5.3 hjkl Directions
k (up)
h (left) l (right)
j (down)
Mnemonic: j looks like a downward arrow (j’s tail curves down).
5.4 Configuration File Notes
- Yazi v26.x config section name is
[mgr], not the old[manager] sort_byvalue is"mtime", not"modified"- Config errors cause the entire file to silently fail — use
yazi --debugto diagnose - After modifying config, exit Yazi (
q) and re-enter for changes to take effect
Part 6: Daily Workflow Quick Reference
Browsing Project Files
y → Cmd+D split → Left side Yazi browsing → Right side Claude Code working
Cmd+Left/Right to switch between sides
Finding and Opening a File
s → enter filename → Enter to jump to file → Enter to open
Copying Files to Another Directory
Space to select files → y to mark copy → navigate to target → p to paste
Viewing and Copying File Path
c c → path copied to clipboard
Quick Jump to Common Directories
g p → Projects g b → Blog g s → Secretary ~ → Home
Notes
- Yazi supports image preview in Ghostty (Kitty graphics protocol)
- Yazi built-in help: press
?orF1in Yazi to see all shortcuts - Yazi config directory:
~/.config/yazi/ - Ghostty config:
~/.config/ghostty/config
If you found this helpful, consider buying me a coffee to support more content like this.
Buy me a coffee