Keybindings
Rebinding anything, chord sequences, and the tmux preset.
Settings → Keybindings (⌘ ,) lists every shortcut in the app,
grouped the same way the command palette is. The search box at the top of
Settings reaches this page too: type what a feature is called — split,
commit, sftp — and the page narrows to the shortcuts for it. Action names
work as well as labels, so a binding you read about in keybindings.json is
one search away from the row that sets it.
Rebinding
Click a shortcut and press the new keys. It saves after a brief pause.
| Press keys | Set the binding |
| Press more keys | Chain a sequence — ⌃ B then X |
| Esc | Cancel |
| ⌫ | Remove the last key — or, pressed first, reset the shortcut to its default |
Restore all defaults at the bottom undoes every rebinding at once. There is no undo for that one.
Actions with no default key
Some actions ship deliberately unbound, because there is no obvious key left to take: pane resize and swap, workspace selection, most git commands, SFTP, and the panel tabs. They are all in the command palette, and all bindable here.
Editing config.json instead
{
"keybindings": {
"SplitRight": "cmd-d",
"ResizePaneLeft": "ctrl-alt-left",
"ToggleSftp": "cmd-shift-u"
}
}The syntax is modifiers joined by -, then the key. Chords are separated by a
space.
| Token | Means |
|---|---|
secondary | ⌘ on macOS, Ctrl elsewhere |
cmd · ctrl · alt · shift | Literal modifiers |
ctrl-b n | A two-key sequence |
An unknown action name or an invalid keystroke is skipped with a warning in the log rather than breaking the rest of your bindings.
The full action list is on the keyboard shortcuts page.
The tmux preset
Settings → Keybindings → Preset → tmux remaps pane and tab actions onto a prefix — ⌃ B by default, changeable in the Prefix field beside it.
| ⌃ B C · X | New tab · close tab |
| ⌃ B % · " | Split right · split down |
| ⌃ B ←→↑↓ | Move focus |
| ⌃ B ⌃ ←→↑↓ | Resize the pane |
| ⌃ B O · ; | Next pane · previous pane |
| ⌃ B { · } | Swap with the previous · next pane |
| ⌃ B Z | Zoom the pane |
| ⌃ B N · P | Next tab · previous tab |
| ⌃ B 1…9 | Jump to a tab |
Two details that make it livable:
- A bare prefix reaches the shell after about a second, so ⌃ B still works as "back one character" when you meant it.
- Prefix plus an unbound key is passed straight through to the terminal, so a tmux binding you did not remap still lands in whatever is running.
Some non-obvious defaults
| ⇧ ⏎ · ⌥ ⏎ | Insert a newline at the prompt instead of submitting (InsertNewline) |
| ⌘ ⇧ ⏎ | Zoom the focused pane |
| ⌘ ⇧ E | Toggle the code panel |
| ⌘ ⇧ R | Restart the SSH session in this pane |
| ⌘ ⇧ O | Workspace switcher |
| ⌘ ⇧ N | New workspace |