Quick Open / Go to File
VS CodeJump to any file in the project by typing part of its name — the fastest way to move around a codebase.
38 shortcuts every developer leans on — in VS Code, JetBrains IDEs, Vim, and the terminal. Each one in plain English, with the Mac and Windows/Linux keys side by side.
Last reviewed:
You don't need to memorise hundreds of bindings. A handful pays for itself within a day: Command Palette (when you forget anything), Quick Open (jump to any file), Go to Definition (read unfamiliar code), Rename Symbol (refactor safely), Select Next Occurrence (edit many spots at once), and Reverse History Search (stop retyping commands). Learn those six first; the rest stick naturally.
macOS vs Windows/Linux: the single biggest difference is the modifier. Where macOS uses ⌘ Cmd, Windows and Linux almost always use Ctrl. So ⌘ P becomes Ctrl + P. The ⌥ Option key on Mac maps to Alt elsewhere, and ⌃ Control on Mac is mostly reserved for terminal and Vim-style bindings (which are the same on every platform).
Comment or uncomment the current line (or selection). Works in any language.
Move the current line (or selected block) up or down without cut-and-paste.
Duplicate the current line above or below the original.
Remove the entire current line in one keystroke.
Re-indent and tidy the whole file using the configured formatter (Prettier, gofmt, etc.).
Write every modified file to disk at once.
Vim: delete the current line. Press twice — d then d.
💡 The deleted line goes into the register, so you can paste it back with p.
Vim: copy ("yank") the current line into the register.
Vim: paste whatever is in the register after the cursor.
💡 Uppercase P pastes before the cursor instead.
Vim: delete the word under the cursor and drop straight into insert mode to retype it.
Vim: save the file and close the editor. The legendary "how do I exit Vim" answer.
💡 :q! quits without saving; ZZ is a shorthand for write-and-quit.
Add the next match of the current word to your selection so you can edit several at once.
💡 Press repeatedly to grab more matches. ⌘⇧L / Ctrl+Shift+L selects every occurrence at once.
Stack extra cursors on the lines above or below to type the same thing on many lines.
Drop an additional cursor anywhere you click while holding the modifier.
Rename a variable, function, or class everywhere it is used — safely, across the project.
💡 This is rename-aware, not find-and-replace — it understands scope and won't touch unrelated strings.
Open the lightbulb menu of suggested fixes and refactorings for the code under the cursor.
Pull selected code out into its own method or variable. A JetBrains staple of clean refactoring.
💡 In JetBrains, ⌃T (Mac) opens the Refactor This menu; Ctrl+Alt+M extracts a method directly on Win/Linux.
Search the whole project for a string or pattern, with replace-in-files support.
Launch the debugger, or resume execution until the next breakpoint.
Set or clear a breakpoint on the current line so execution pauses there.
Run the current line and stop on the next one, without descending into function calls.
Descend into the function call on the current line to debug it line by line.
Finish the current function and return to the caller.
Show or hide the terminal panel inside the editor.
Stop the running command — send an interrupt signal to whatever is in the foreground.
Search backwards through your command history as you type. Saves retyping long commands.
💡 Press ⌃R again to cycle to older matches.
Jump the cursor to the beginning (Ctrl+A) or end (Ctrl+E) of the command line.
Wipe the terminal screen, keeping the current command line intact.
💡 Equivalent to typing clear, but instant and non-destructive to your typed line.
Complete a file name, command, or path. Press twice to list all matches.
Delete the word to the left of the cursor on the command line.