VS Code Keyboard Shortcuts
Complete keyboard shortcut reference for VS Code on MacWindowsLinux.
General
| Action | Shortcut |
|---|---|
| Show Command Palette | CmdShiftPCtrlShiftPCtrlShiftP |
| Quick Open file | CmdPCtrlPCtrlP |
| Open Settings | Cmd,Ctrl,Ctrl, |
| Open Keyboard Shortcuts | CmdKCmdSCtrlKCtrlSCtrlKCtrlS |
| Toggle Sidebar | CmdBCtrlBCtrlB |
| Toggle Terminal | Ctrl`Ctrl`Ctrl` |
| Toggle Zen Mode | CmdKZCtrlKZCtrlKZ |
File Management
| Action | Shortcut |
|---|---|
| New File | CmdNCtrlNCtrlN |
| Open File | CmdOCtrlOCtrlO |
| Save | CmdSCtrlSCtrlS |
| Save As | CmdShiftSCtrlShiftSCtrlShiftS |
| Save All | CmdAltSCtrlKSCtrlKS |
| Close Editor | CmdWCtrlWCtrlW |
| Close All Editors | CmdKCmdWCtrlKCtrlWCtrlKCtrlW |
| Reopen Closed Editor | CmdShiftTCtrlShiftTCtrlShiftT |
| New Window | CmdShiftNCtrlShiftNCtrlShiftN |
Editing
| Action | Shortcut |
|---|---|
| Cut line | CmdXCtrlXCtrlX |
| Copy line | CmdCCtrlCCtrlC |
| Move line up | AltUpAltUpAltUp |
| Move line down | AltDownAltDownAltDown |
| Copy line up | AltShiftUpAltShiftUpAltShiftUp |
| Copy line down | AltShiftDownAltShiftDownAltShiftDown |
| Delete line | CmdShiftKCtrlShiftKCtrlShiftK |
| Insert line below | CmdEnterCtrlEnterCtrlEnter |
| Insert line above | CmdShiftEnterCtrlShiftEnterCtrlShiftEnter |
| Indent line | Cmd]Ctrl]Ctrl] |
| Outdent line | Cmd[Ctrl[Ctrl[ |
| Toggle line comment | Cmd/Ctrl/Ctrl/ |
| Toggle block comment | AltShiftAAltShiftAAltShiftA |
| Undo | CmdZCtrlZCtrlZ |
| Redo | CmdShiftZCtrlShiftZCtrlShiftZ |
| Format document | AltShiftFAltShiftFAltShiftF |
| Trigger Suggest (IntelliSense) | CtrlSpaceCtrlSpaceCtrlSpace |
| Quick Fix | Cmd.Ctrl.Ctrl. |
Selection
| Action | Shortcut |
|---|---|
| Select all | CmdACtrlACtrlA |
| Expand selection | AltShiftRightAltShiftRightAltShiftRight |
| Shrink selection | AltShiftLeftAltShiftLeftAltShiftLeft |
| Select current line | CmdLCtrlLCtrlL |
| Select all occurrences of word | CmdShiftLCtrlShiftLCtrlShiftL |
| Select next occurrence of word | CmdDCtrlDCtrlD |
| Add cursor above | CmdAltUpCtrlAltUpCtrlAltUp |
| Add cursor below | CmdAltDownCtrlAltDownCtrlAltDown |
| Add cursor at click | AltClickAltClickAltClick |
| Column (box) selection | AltShiftDragAltShiftDragAltShiftDrag |
Search & Replace
| Action | Shortcut |
|---|---|
| Find | CmdFCtrlFCtrlF |
| Replace | CmdHCtrlHCtrlH |
| Find next | CmdGF3F3 |
| Find previous | CmdShiftGShiftF3ShiftF3 |
| Find in files | CmdShiftFCtrlShiftFCtrlShiftF |
| Replace in files | CmdShiftHCtrlShiftHCtrlShiftH |
| Toggle match case | CmdAltCAltCAltC |
| Toggle regex | CmdAltRAltRAltR |
| Toggle match whole word | CmdAltWAltWAltW |
Editor Management
| Action | Shortcut |
|---|---|
| Split editor right | Cmd\Ctrl\Ctrl\ |
| Focus 1st editor group | Cmd1Ctrl1Ctrl1 |
| Focus 2nd editor group | Cmd2Ctrl2Ctrl2 |
| Focus 3rd editor group | Cmd3Ctrl3Ctrl3 |
| Move editor to next group | CmdAltRightCtrlAltRightCtrlAltRight |
| Move editor to previous group | CmdAltLeftCtrlAltLeftCtrlAltLeft |
| Switch to next editor | CmdAltRightCtrlPageDownCtrlPageDown |
| Switch to previous editor | CmdAltLeftCtrlPageUpCtrlPageUp |
Terminal
| Action | Shortcut |
|---|---|
| Toggle terminal | Ctrl`Ctrl`Ctrl` |
| New terminal | CtrlShift`CtrlShift`CtrlShift` |
| Copy in terminal | CmdCCtrlShiftCCtrlShiftC |
| Paste in terminal | CmdVCtrlShiftVCtrlShiftV |
| Scroll up in terminal | CmdUpCtrlUpCtrlUp |
| Scroll down in terminal | CmdDownCtrlDownCtrlDown |
| Kill terminal | CmdBackspaceCtrlBackspaceCtrlBackspace |
Debug
| Action | Shortcut |
|---|---|
| Start / Continue debugging | F5F5F5 |
| Stop debugging | ShiftF5ShiftF5ShiftF5 |
| Step over | F10F10F10 |
| Step into | F11F11F11 |
| Step out | ShiftF11ShiftF11ShiftF11 |
| Toggle breakpoint | F9F9F9 |
| Restart debugging | CmdShiftF5CtrlShiftF5CtrlShiftF5 |
Display
| Action | Shortcut |
|---|---|
| Toggle full screen | CtrlCmdFF11F11 |
| Zoom in | Cmd=Ctrl=Ctrl= |
| Zoom out | Cmd-Ctrl-Ctrl- |
| Reset zoom | CmdNumpad0CtrlNumpad0CtrlNumpad0 |
| Toggle word wrap | AltZAltZAltZ |
| Show Explorer | CmdShiftECtrlShiftECtrlShiftE |
| Show Search | CmdShiftFCtrlShiftFCtrlShiftF |
| Show Source Control | CtrlShiftGCtrlShiftGCtrlShiftG |
| Show Extensions | CmdShiftXCtrlShiftXCtrlShiftX |
| Show Problems | CmdShiftMCtrlShiftMCtrlShiftM |
No shortcuts found. Try a different search term.
Frequently Asked Questions
How do I open the Command Palette in VS Code?
Press Cmd+Shift+P on Mac or Ctrl+Shift+P on Windows/Linux. The Command Palette gives you access to all VS Code commands and is the fastest way to perform any action.
How do I customize keyboard shortcuts in VS Code?
Open keyboard shortcuts with Cmd+K Cmd+S (Mac) or Ctrl+K Ctrl+S (Windows/Linux). You can search for any command, see its current binding, and assign a new key combination by clicking the pencil icon.
What are the most useful VS Code shortcuts to learn first?
Start with: Command Palette (Cmd/Ctrl+Shift+P), Quick Open (Cmd/Ctrl+P), Toggle Terminal (Ctrl+`), Find (Cmd/Ctrl+F), and Multi-cursor select (Cmd/Ctrl+D). These five shortcuts cover most common workflows.
How do I use multi-cursor editing in VS Code?
Select a word and press Cmd+D (Mac) or Ctrl+D (Windows/Linux) to select the next occurrence. Use Cmd+Alt+Up/Down (Mac) or Ctrl+Alt+Up/Down (Windows/Linux) to add cursors above or below. Hold Alt and click to place cursors anywhere.
Can I use Vim or Emacs keybindings in VS Code?
Yes. Install the 'Vim' or 'Emacs Keymap' extension from the VS Code Marketplace. These extensions remap keyboard shortcuts to match Vim or Emacs conventions while still allowing you to use VS Code features.