--- 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 1Alt 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)