The Prefix Key
Every tmux command starts with Ctrl-B (or whatever you remap it to)
tmux commands are two-step: press the prefix key, release, then press the command key. Default prefix is Ctrl-B. Most users remap it because Ctrl-B clashes with Vim's page-up.
tmux's keymap is two-step on purpose. You press the prefix key โ by default Ctrl-B โ release it, and then press the actual command key. Ctrl-Bc creates a window; Ctrl-B% splits a pane. The prefix exists because tmux runs underneath whatever program is in your active pane. Without a clear separator, tmux would have to fight every program for keystrokes. With a prefix, programs see all the normal keys; tmux sees only what comes after the prefix.
Press Ctrl-B? for the built-in cheat sheet. It lists every default binding in a scrollable buffer. Press q to dismiss it. This is the canonical "how do I do X in tmux" lookup โ always a keystroke away.
Why People Remap the Prefix
Ctrl-B clashes with Vim. Vim uses Ctrl-B for page-back. When Vim runs inside tmux, tmux intercepts the keystroke before Vim sees it, and Vim's page-up stops working. Three workarounds, in order of popularity:
| Solution | How | Trade-off |
|---|---|---|
| Remap prefix to Ctrl-Space | set -g prefix C-Space in ~/.tmux.conf |
Cleanest. Ctrl-Space doesn't conflict with Vim or anything else common. |
| Remap prefix to Ctrl-A | set -g prefix C-a (matches GNU screen) |
Familiar to screen users, but Ctrl-A shadows Vim's increment number. |
| Send literal Ctrl-B through | Ctrl-BCtrl-B | No config change, but every page-up is two keystrokes instead of one. |
| Use Ctrl-U or PageUp | Different Vim binding for the same operation | Acceptable if you only need page-up occasionally. |
The remap-to-Ctrl-Space approach is the modern consensus. Almost every published .tmux.conf you'll find online does it. If you only learn one customization, learn this one.
Watch
See also: What Is tmux?, Panes โ Split, Navigate, Resize, Windows