---
title: "Keyboard shortcuts"
description: "Every default binding, plus the action names for rebinding."
---
**Settings → Keybindings** (⌘ ,) is the live version of this page —
it shows what *your* copy is bound to. This is the shipped default.
## Tabs and workspaces
| Action | macOS | Windows / Linux |
|---|---|---|
| New Tab | ⌘ T | Ctrl ⇧ T |
| Close Pane / Tab | ⌘ W | Ctrl ⇧ W |
| Reopen Closed Tab | ⌘ ⇧ T | Alt ⇧ T |
| Next Tab · Previous Tab | ⌃ ⇥ · ⌃ ⇧ ⇥ | same |
| Go to Tab 1–9 | ⌘ 1…⌘ 9 | Alt 1…Alt 9 |
| New Workspace | ⌘ ⇧ N | Ctrl ⇧ N |
| Switch Workspace | ⌘ ⇧ O | Ctrl ⇧ O |
## Panes
| Action | macOS | Windows / Linux |
|---|---|---|
| Split Right | ⌘ D | Ctrl ⇧ D |
| Split Down | ⌘ ⇧ D | Ctrl Alt ⇧ D |
| Next Pane · Previous Pane | ⌘ ] · ⌘ [ | Ctrl ⇧ ] · Ctrl ⇧ [ |
| Focus Pane Left / Right / Up / Down | ⌘ ⌥ ←→↑↓ | Alt ←→↑↓ |
| Zoom Pane | ⌘ ⇧ ⏎ | Ctrl ⇧ ⏎ |
| Enter Full Screen | ⌘ ⏎ | F11 |
## View
| Action | macOS | Windows / Linux |
|---|---|---|
| Command Palette | ⌘ P | Ctrl ⇧ P |
| Toggle Left Sidebar | ⌘ B | Ctrl ⇧ B |
| Toggle Right Panel | ⌘ J | Ctrl ⇧ J |
| Toggle Code Panel | ⌘ ⇧ E | Ctrl ⇧ E |
| Font Size Up · Down · Reset | ⌘ + · ⌘ − · ⌘ 0 | Ctrl + · Ctrl − · Ctrl 0 |
| Zoom the font | ⌘ + wheel | Ctrl + wheel |
## Terminal
| Action | macOS | Windows / Linux |
|---|---|---|
| Find in Terminal | ⌘ F | Ctrl ⇧ F |
| Find Next · Previous | ⌘ G · ⌘ ⇧ G | F3 · ⇧ F3 |
| Clear Scrollback | ⌘ K | Ctrl ⇧ K |
| Copy · Paste | ⌘ C · ⌘ V | Ctrl ⇧ C · Ctrl ⇧ V · ⇧ Insert |
| Insert Newline (at the prompt) | ⇧ ⏎ · ⌥ ⏎ | same |
| Fuzzy history search | ⌃ R | same |
| Accept ghost suggestion | → | same |
| Completion menu | ⇥ | same |
On Windows and Linux plain Ctrl V also pastes at a shell prompt.
Inside a full-screen application — vim, less, tmux — it is passed through as
the key, so it means what the application says it means (blockwise Visual mode
in vim); paste there with Ctrl ⇧ V or ⇧ Insert.
That convenience is the **Paste (outside full-screen apps)** binding, and it is
yours to move. Clearing it hands Ctrl V to the shell everywhere,
including readline's `quoted-insert`:
```json
{ "keybindings": { "AlternatePaste": "" } }
```
Putting Paste itself on the chord goes the other way, pasting on every screen
the way Windows Terminal does out of the box:
```json
{ "keybindings": { "PasteText": "ctrl-v" } }
```
Every Ctrl chord that stands for a control code reaches the program
you are running: Ctrl 6 and Ctrl ⇧ 6 are `^^` (vim's
alternate file), Ctrl / and Ctrl ⇧ − are `^_` (readline's
undo), Ctrl 3 is Escape. The plain Ctrl chords tty7 keeps
are the ones that stand for nothing: Ctrl ⇥ for the next tab, and on
Windows and Linux Ctrl + · Ctrl − · Ctrl 0 for
the font size.
## Git and SSH
| Action | macOS | Windows / Linux |
|---|---|---|
| Commit (caret in the message box) | ⌘ ⏎ | Ctrl ⏎ |
| Save (in the editor) | ⌘ S | Ctrl S |
| Restart SSH Session | ⌘ ⇧ R | Ctrl ⇧ R |
## Application
| Action | macOS | Windows / Linux |
|---|---|---|
| Settings | ⌘ , | Ctrl , |
| Keyboard Shortcuts | ⌘ / | — |
| Hide tty7 · Hide Others · Minimize | ⌘ H · ⌘ ⌥ H · ⌘ M | — |
| Quit | ⌘ Q | Ctrl ⇧ Q |
## Actions with no default key
All of these are in the command palette, and all are bindable under **Settings →
Keybindings**:
| Group | Actions |
|---|---|
| Tabs | `RenameTab` · `NewWorktreeTab` · `CloseOtherTabs` · `CloseTabsToTheRight` · `CopyWorkingDirectory` · `MarkTabUnread` · `ToggleTabSidebar` |
| Panes | `ResizePaneLeft/Right/Up/Down` · `SwapPaneNext` · `SwapPanePrev` |
| Workspaces | `SelectWorkspace1`…`SelectWorkspace9` · `RenameWorkspace` · `StopWorkspace` · `DeleteWorkspace` |
| Agents | `ForkAgentSession` (+ `Right` / `Left` / `Down` / `Up`) · `CopyAgentSessionId` |
| Git | `ScmStageAll` · `ScmUnstageAll` · `ScmDiscardAll` · `ScmCommitAmend` · `ScmRefresh` · `ScmSync` · `ScmPush` · `ScmPull` · `ScmFetch` · `ScmCheckoutBranch` · `ScmCreateBranch` · `ScmToggleGraph` · `ToggleDiffViewMode` |
| Panels | `ShowRightPanelInfo` · `ShowRightPanelChanges` · `ShowRightPanelFiles` |
| SSH | `ToggleSftp` · `ShowSshForwards` · `OpenSshProfiles` |
| Application | `About` · `CheckForUpdates` · `OpenDocumentation` · `OpenDiscord` · `ReportIssue` · `ShowAll` · `ZoomWindow` |
## Rebinding syntax
```json
{
"keybindings": {
"ResizePaneLeft": "ctrl-alt-left",
"ToggleSftp": "secondary-shift-u",
"ScmSync": "ctrl-b s"
}
}
```
`secondary` means ⌘ on macOS and Ctrl elsewhere. A space
separates the steps of a chord.
[More →](/customization/keybindings)