All Shortcuts

VS Code Shortcuts & Commands — Complete Cheat Sheet (49)

Complete Visual Studio Code keyboard shortcuts for editing, navigation, debugging, and terminal operations. The most comprehensive VS Code shortcut reference for developers.

VS Code ships with a keymap that is deliberately close to every other Windows editor, which is why most people never open the keybindings editor and then wonder why colleagues seem faster. The gap is almost never the common Ctrl-key bindings; it is the dozen navigation and multi-cursor shortcuts below that turn the editor into something you drive rather than click through. The table follows the default Windows/Linux keymap; on macOS read Cmd for Ctrl and Option for Alt.

Related Shortcut Pages

Jupyter Notebook PyCharm Xcode Neovim / Vim WebStorm JetBrains Rider

Search all VS Code shortcuts interactively

Interactive Shortcut Finder

All VS Code Shortcuts

Essential Editing

ShortcutActionDescription
Ctrl + XCut LineCut entire line if no selection.
Ctrl + CCopy LineCopy entire line if no selection.
Ctrl + /Toggle CommentComment or uncomment selected lines.
Ctrl + ]IndentIndent selected lines.
Ctrl + [OutdentOutdent selected lines.
Ctrl + DSelect Next MatchSelect next occurrence of current word.
Ctrl + Shift + LSelect All MatchesSelect all occurrences at once.
Ctrl + Shift + KDelete LineDelete current line without selection.
Ctrl + EnterInsert Line BelowInsert new line below current line.
Alt + Up/DownMove LineMove current line or selection up/down.
Shift + Alt + Up/DownCopy LineDuplicate line or selection up/down.

Multi-cursor

ShortcutActionDescription
Alt + ClickAdd CursorAdd cursor at clicked position.
Ctrl + Alt + Up/DownAdd Cursor Above/BelowAdd cursor above or below current line.
Shift + Alt + ICursors at Line EndsAdd cursors at end of each selected line.
Ctrl + LSelect LineSelect entire current line.

Search & Replace

ShortcutActionDescription
Ctrl + FFindSearch in current file.
Ctrl + HReplaceFind and replace in current file.
Ctrl + Shift + FFind in FilesSearch across all files.
Ctrl + Shift + HReplace in FilesReplace across all files.
F3Find NextGo to next search result.
Shift + F3Find PreviousGo to previous search result.

Navigation & Files

ShortcutActionDescription
Ctrl + PQuick OpenQuickly open file by name.
Ctrl + Shift + PCommand PaletteAccess all commands.
Ctrl + TabNext FileSwitch between open files.
Ctrl + WClose EditorClose current editor tab.
Ctrl + \\Split EditorSplit editor horizontally.
Ctrl + 1/2/3Focus Editor GroupFocus on editor group 1, 2, or 3.

Code Navigation

ShortcutActionDescription
F12Go to DefinitionJump to symbol definition.
Alt + F12Peek DefinitionView definition in popup.
Shift + F12Show ReferencesDisplay all references to symbol.
Ctrl + Shift + OGo to SymbolNavigate to symbol in current file.
Ctrl + GGo to LineJump to specific line number.
F8Next ErrorGo to next error or warning.

Views & Panels

ShortcutActionDescription
Ctrl + BToggle SidebarShow or hide sidebar.
Ctrl + Shift + EExplorerOpen file explorer.
Ctrl + Shift + FSearchOpen search panel.
Ctrl + Shift + GGitOpen Git source control.
Ctrl + Shift + DDebugOpen debug panel.
Ctrl + Shift + XExtensionsOpen extensions panel.
Ctrl + `Toggle TerminalOpen or close integrated terminal.
Ctrl + JToggle PanelShow or hide bottom panel.

Debugging

ShortcutActionDescription
F5Start/ContinueStart debugging or continue execution.
Shift + F5StopStop debugging session.
F9Toggle BreakpointAdd or remove breakpoint on current line.
F10Step OverStep over to next line.
F11Step IntoStep into function.

Basic Operations

ShortcutActionDescription
Ctrl + NNew FileCreate new file.
Ctrl + OOpen FileShow file open dialog.
Ctrl + SSaveSave current file.
Ctrl + Shift + SSave AsSave current file with new name.
Ctrl + ,SettingsOpen user settings.
📜 Source: VS Code Key Bindings documentation. Default Windows/Linux keymap; the same page links the official Windows, macOS and Linux shortcut reference sheets. Checked 2026-09-04. How we verify ›

Browse shortcuts for 268 platforms

Explore All
🔧 Spotted an error or a missing shortcut? Suggest an edit on GitHub — every accepted fix goes live on this page, the API and the CLI.

Learn the two palettes before anything else

Two shortcuts do more work than the rest of this page combined. Ctrl + P opens Quick Open, a fuzzy file switcher that matches partial names and path fragments, so uscontr finds UserController.ts without touching the explorer. Ctrl + Shift + P opens the Command Palette, which is the real menu of the editor: every action, including ones with no keybinding, is one typed word away. Once those two are muscle memory, Ctrl + G for a line number and Ctrl + Shift + O for a symbol in the current file cover most in-file jumps, and F12 / Alt + F12 handle cross-file definition lookups without leaving the current editor.

Multi-cursor is the feature people switch editors for

VS Code treats multiple cursors as a first-class editing mode rather than a plugin. Ctrl + D selects the word under the cursor, and pressing it again adds the next occurrence to the selection, so renaming a local variable in a small scope is three keypresses. Ctrl + Shift + L selects every occurrence at once, which is faster than replace when you can see all the hits on screen. Ctrl + Alt + Up/Down stacks cursors on adjacent lines for column edits, and Shift + Alt + I drops a cursor at the end of every selected line — the trick for turning a pasted list into an array. When a multi-cursor edit goes wrong, a single click anywhere collapses back to one cursor.

Bindings that behave differently than their names suggest

Ctrl + C and Ctrl + X with nothing selected act on the whole line, which surprises people coming from other editors and is also why Ctrl + Shift + K exists — it deletes the line without polluting the clipboard. Ctrl + Enter inserts a line below regardless of where the cursor sits, so you do not have to press End first. Alt + Up/Down moves a line but Shift + Alt + Up/Down copies it, and the two are easy to confuse in the first week. Ctrl + ` toggles the integrated terminal, which is different from Ctrl + J: the latter toggles the entire bottom panel, including Problems and Output, and that is the one to use when you want screen space back.

Frequently asked questions

Why does Ctrl + Shift + F appear twice in the table?

It is bound to two things that overlap: it opens the Search view in the sidebar and, with the view open, it is the Find in Files action. In practice pressing it once does both, so the duplication is the editor's, not the table's.

What is the difference between Go to Definition and Peek Definition?

F12 navigates to the definition in a new editor; Alt + F12 opens it in an inline window under the cursor so you can read it and press Esc to return without losing your place.

How do I see all keybindings, including ones not listed here?

Open the Command Palette with Ctrl + Shift + P and run "Preferences: Open Keyboard Shortcuts". It lists every command with its current binding and lets you search by key.

Do these shortcuts work in the terminal panel?

Most editor shortcuts do not apply inside the integrated terminal because the shell receives the keystrokes. Ctrl + ` still toggles it, and Ctrl + Shift + P works because the palette is global.

🤖 Ask AI about VS Code shortcuts

Open your assistant with this page preloaded as the source — great for follow-up questions like "which of these work in other apps?"

ChatGPT Claude Perplexity Gemini Grok