App shortcuts

IntelliJ IDEA keyboard shortcuts for Mac

JetBrains ships three keymaps on macOS and they disagree with each other. This page documents exactly one of them: the default, named macOS.

Updated August 5, 202612 min read

Which keymap this page documents

JetBrains states that on macOS the default keymap is the one named macOS. Two others ship alongside it: IntelliJ IDEA Classic, a legacy keymap that resembles the Windows default, and macOS System Shortcuts, which exists specifically to avoid clashing with the system's own chords. They are genuinely different bindings, not cosmetic variants, and this page documents the default macOS keymap only.

That distinction is the reason most IntelliJ shortcut lists on the web are unreliable. A chord copied from a Windows tutorial, or from someone running the System Shortcuts keymap, will simply do nothing — or something else — on a stock Mac install. Before comparing anything here against your own IDE, open Settings and look at Keymap to see which one is selected.

You cannot edit a predefined keymap in place. Changing any shortcut makes IntelliJ IDEA copy the keymap first and modify the copy, which means your bindings can drift a long way from these defaults without you ever having decided to change keymaps.

The shortcuts JetBrains itself puts first

Command, Shift and A shown as mechanical keycaps — IntelliJ IDEA's Find Action chord
⌘⇧Afind any action by name

JetBrains opens its own reference with a short list of what it considers the top shortcuts, and it is a better starting point than any of the longer tables further down. Two of them are double-modifier chords rather than combinations: pressing ⇧ twice opens Search Everywhere, and pressing ⌃ twice opens Run Anything.

⌥⏎ is the single most valuable key on this list. It offers the intention actions available wherever the caret is, which means the IDE tells you what it can fix instead of you having to know the name of the fix.

ShortcutWhat it does
Double ⇧Search Everywhere
⌘⇧AFind Action
⌥⏎Show intention actions
⌘ERecent Files
⌘1Show the Project tool window
⌥F7Find Usages
⌥F1Select In
⌘,Open Settings
⌘NGenerate
Double ⌃Run Anything
⌃⌥DDebug
⌘⇧F8View Breakpoints
⌥⇧F5Attach to Process
⌃VVCS Operations Popup
⌃TRefactor This
⌘⌥LReformat Code
⌘F9Build Project
⌘⇧F9Rebuild
⌃⌥NNew in This Directory

Basic editing

⌘D duplicates the line or selection, and it is worth pausing on because the same chord means Show Diff inside the diff viewer. Overloaded chords like that are normal in this keymap — context decides.

The three paste entries are the ones people wish they had known sooner. ⌘⇧V opens the clipboard history rather than pasting the most recent entry, and ⌘⌥⇧V pastes as plain text, which is the fix for code arriving out of a browser with its formatting attached.

ShortcutWhat it does
⌘X / ⌘C / ⌘VCut, copy or paste
⌘⇧VPaste from history
⌘⌥⇧VPaste as plain text
⌘⇧CCopy paths
⌘⌥⇧CCopy reference
⌘SSave all
⌘Z / ⌘⇧ZUndo or redo
⇥ / ⇧⇥Indent, or unindent, the line or selection
⌃⌥IAuto-indent lines
⇧⏎Start a new line
⌘⌥⏎Start a new line before the current one
⌘⌫Delete line
⌃⇧JJoin lines
⌘DDuplicate line or selection
⌘⇧UToggle case
⌘⇧NCreate a scratch file
⇧F4Open the source in a new window
⌃⇧. / ⌃⇧,Increase or decrease the font size in all editors

Moving the caret, selecting and folding

The movement chords follow the same rule as the rest of macOS — ⌥ for a word, ⌘ for a line — and then add IntelliJ's own structural jumps on top: ⌃M to the matching brace, ⌘⌥[ and ⌘⌥] to the start and end of the enclosing code block.

Selection mirrors movement exactly: add ⇧ to a movement chord and you drag the selection instead of the caret. The two that do not follow that pattern are the most useful of the group. ⌥↑ widens the selection to the next syntactic unit — word, expression, statement, block — and ⌥↓ shrinks it back, which is how you select a whole argument list without touching a bracket.

The folding shortcuts assume hardware most Mac users do not have: JetBrains binds them to the numeric keypad, so ⌘NumPad+ and ⌘NumPad- need an external keyboard with a number block. On a laptop the practical route is Find Action or a rebind. ⌘. is the exception and folds the current selection with no keypad involved.

The multiple-caret entries at the bottom are where this keymap gets genuinely fast. ⌃G adds a selection at the next occurrence of whatever is selected, ⌃⇧G takes the last one back, and ⌘⌃G selects every occurrence in the file at once — a rename in three keystrokes when a proper refactoring is overkill.

ShortcutWhat it does
⌥← / ⌥→Move the caret to the previous or next word
⌘← / ⌘→Move the caret to the start or end of the line
⌃MMove the caret to the matching brace
⌘⌥[ / ⌘⌥]Move the caret to the start or end of the code block
⌃⇧↑ / ⌃⇧↓Go to the previous or next method
⌘Home / ⌘EndMove the caret to the start or end of the text
⌘Page ↑ / ⌘Page ↓Move the caret to the top or bottom of the page
⌘ASelect all
⇧← / ⇧→ / ⇧↑ / ⇧↓Extend the selection by a character or a line
⌥⇧← / ⌥⇧→Extend the selection by a word
⌘⇧← / ⌘⇧→Extend the selection to the start or end of the line
⌘⌥⇧[ / ⌘⌥⇧]Extend the selection to the start or end of the code block
⌘⇧Home / ⌘⇧EndExtend the selection to the start or end of the text
⌥↑Extend the selection to the next syntactic unit
⌥↓Shrink the selection
⌘NumPad+ / ⌘NumPad-Expand or collapse the current fold
⌘⌥NumPad+ / ⌘⌥NumPad-Expand or collapse recursively
⌘⇧NumPad+ / ⌘⇧NumPad-Expand or collapse all
⌘.Fold the selection
⌥⇧ClickAdd or remove a caret
Double ⌥ then ↑ or ↓Clone the caret above or below
⌥⇧GAdd a caret to each line in the selection
⌃GAdd a selection for the next occurrence
⌘⌃GSelect all occurrences
⌃⇧GDeselect the last occurrence
⌘⇧8Toggle column selection mode
⌥ and dragCreate a rectangular selection

Coding assistance

Option and Return shown as mechanical keycaps — IntelliJ IDEA's show intention actions chord
⌥⏎show intention actions at the caret

Completion has three levels, and knowing the difference is worth more than any other item here. ⌃Space is ordinary completion, ⌃⇧Space filters it down to what actually type-checks in this position, and ⌃⌥Space searches classes and symbols that have not been imported yet.

⌘⇧⏎ completes the current statement — closing the brackets, adding the semicolon, moving the caret to the next line — and it is the chord that makes typing a block feel less like typing punctuation.

ShortcutWhat it does
⌥⏎Show intention actions
⌃SpaceBasic completion
⌃⇧SpaceType-matching completion
⌃⌥SpaceSecond basic completion
⌘⇧⏎Complete the current statement
⌘⌥LReformat code
⌘PParameter info
F1Quick documentation
⌘⇧↑ / ⌘⇧↓Move the statement up or down
⌥⇧↑ / ⌥⇧↓Move the line up or down
⌘⌥⇧← / ⌘⌥⇧→Move the element left, or the statement right
⌘/Comment with a line comment
⌘⌥/Comment with a block comment
⌘⌥TSurround with
⌘NGenerate

Finding everything, and getting back

This is the group that makes a large codebase navigable. Search Everywhere on double ⇧ covers files, classes, symbols and actions at once, and the specific variants below it are worth learning anyway because they do not make you disambiguate: ⌘⇧O for a file, ⌘⌥O for a symbol, ⌘F12 for the structure of the file you are already in.

⌘⇧⌫ is the quiet hero. It returns the caret to your last edit location, wherever in the project that was, which is the answer to having chased a definition four files deep and forgotten what you were changing.

ShortcutWhat it does
Double ⇧Search Everywhere
⌘FFind in the current file
⌘G / ⌘⇧GMove to the next or previous occurrence
⌘RReplace in the current file
⌘⇧FFind in files
⌘⇧RReplace in files
⌘⇧OGo to file
⌘⌥OGo to symbol
⌘F12Show the file structure
⌘LGo to line or column
⌘ERecent files
⌥⇧CRecent changes
⌘⇧⌫Jump to the last edit location
⌘[ / ⌘]Navigate back or forward
⌘⇧[ / ⌘⇧]Select the previous or next tab
⌃⇥Open the Switcher
⌘⌥↑ / ⌘⌥↓Go to the previous or next occurrence
F3Toggle an anonymous bookmark
⌘F3Show all bookmarks
⌃⇧ and a digitToggle a bookmark with that digit
⌃ and a digitGo to the bookmark with that digit

Running, debugging and stepping

The stepping keys are the plain function keys, which on a modern Mac keyboard means either pressing Fn as well or turning off the media-key behaviour in System Settings. It is worth doing: F7, F8 and ⇧F8 are the three keys a debugging session is made of.

⌃R and ⌃D run and debug whatever configuration the current context implies, so you rarely need to open the configuration list at all. ⌥F8 evaluates an arbitrary expression at the current breakpoint, which is where most debugging actually happens.

ShortcutWhat it does
Double ⌃Run Anything
⌃RRun the context configuration
⌃DDebug the context configuration
⌃⌥R / ⌃⌥DOpen the Run or Debug list
⌥⇧F5Attach to process
⌘F2Stop
⌘⌥RResume the program
F8Step over
F7Step into
⇧F7Smart step into
⇧F8Step out
⌥⇧F8 / ⌥⇧F7Force step over, or force step into
⌥F9Run to cursor
⌘⌥F9Force run to cursor
⌥F10Show the execution point
⌥F8Evaluate an expression
⌘⌥F8Quick-evaluate an expression
⌘F8Toggle a line breakpoint
⌘⌥⇧F8Toggle a temporary line breakpoint
⌘⇧F8View breakpoints
⌘4 / ⌘5Show the Run or Debug tool window

Refactoring, version control and tool windows

⌃T is the only refactoring shortcut you strictly need: it offers every refactoring available at the caret. The named ones below are worth learning anyway for the three or four you reach for daily — extract method, introduce variable, rename.

The version-control group is where this keymap collides with itself hardest. ⌘K commits and ⌘T updates the project, which are exactly the chords a lot of Mac software uses for something else entirely. The tool windows are numbered ⌘1 to ⌘0 in a fixed order, and ⇧⎋ hides whichever one currently has focus.

ShortcutWhat it does
⌃TRefactor This
⇧F6Rename
F6Move
⌘F6Change signature
⌘⌥MExtract method
⌘⌥VIntroduce variable
⌘⌥FIntroduce field
⌘⌥PIntroduce parameter
⌘⌥NInline
⌘⌦Safe delete
⌃VVCS Operations Popup
⌘KCommit
⌘⇧KPush
⌘TUpdate project
⌘⌥ZRollback
⌃⌥⇧↑ / ⌃⌥⇧↓Go to the previous or next change
⌘DShow diff, or compare files
F7 / ⇧F7Next or previous difference in the diff viewer
⌘⌃→ / ⌘⌃←Accept the left or right side of a diff
⇧⎋Hide the active tool window
⌘⇧F12Hide all tool windows
F12Jump to the last tool window
⌘1 to ⌘0Show a specific tool window
⌥F12Show the Terminal tool window

Show your IntelliJ shortcuts on screen

A JetBrains IDE is the hardest kind of application to record. The shortcuts are dense, most of them are invisible, and a good many change the editor in ways that look like the previous keystroke rather than the current one. Someone watching a pair-programming session or a recorded walkthrough sees a method extract itself and has no way to tell ⌘⌥M from a template from an AI completion.

Show KeyPress is a paid macOS menu bar app, for macOS 14 Sonoma or later, that draws each key you press as a keycap above everything else on screen. It is not a plugin — there is nothing to install into the IDE, no JetBrains Marketplace entry, and no integration of any kind. It draws a window over your other windows, and whatever is capturing the display captures it too.

  • Shortcuts Only content mode draws chords like ⌘⌥⇧V while leaving the code you type alone, which is usually exactly the right split for a screencast.
  • Latest mode suits explaining one refactoring at a time; Horizontal History keeps a trail when a sequence such as ⌘E then ⏎ is the point.
  • Function keys and special keys have their own filters, which matters for a debugging demo built on F7 and F8.
  • Eight edge presets plus a full-screen drag editor keep the overlay clear of the gutter, the tool windows and the terminal.
  • ⌃⌥M switches content mode mid-demo, and ⌃⌥= and ⌃⌥- resize the overlay without opening Settings.

Sources and further reading

Product details and guidance were checked against these first-party pages on August 5, 2026. Re-check current listings before making an install or high-stakes decision.

FAQ

Questions people ask

Which IntelliJ IDEA keymap do these shortcuts belong to?

The predefined keymap named macOS, which JetBrains states is the default on macOS. The other two that ship on a Mac — IntelliJ IDEA Classic and macOS System Shortcuts — bind many actions differently, so a chord from this page can genuinely do nothing if one of those is selected in Settings, Keymap.

What is macOS System Shortcuts and should I use it?

It is a keymap JetBrains designed to avoid conflicts with the system's own shortcuts. It is worth switching to if IntelliJ keeps stealing chords you rely on elsewhere in macOS — but its bindings differ from the defaults on this page, so you would need JetBrains' reference for that keymap rather than this one.

Do these shortcuts work in WebStorm, PyCharm and the other JetBrains IDEs?

Most of them do, because the IDEs share a platform and the same macOS keymap underneath. They are not guaranteed identical, though: each IDE adds its own actions and occasionally rebinds one. JetBrains publishes a keymap reference per product, and this page is IntelliJ IDEA's.

Why do the code-folding shortcuts do nothing on my laptop?

They are bound to the numeric keypad — ⌘NumPad+ and ⌘NumPad- — which a Mac laptop keyboard does not have. Either use an external keyboard with a number block, run the action from Find Action, or rebind it. ⌘. folds the current selection and needs no keypad.

Why does ⌘K commit instead of doing what it does in my other apps?

The macOS keymap binds ⌘K to Commit and ⌘T to Update Project, which collides with what many Mac applications use those chords for. Inside the IDE, IntelliJ wins. If that bothers you, rebind it in Settings, Keymap — which copies the predefined keymap rather than editing it.

How do I show which IntelliJ shortcut I pressed in a recording?

Run a keystroke overlay while you record. Show KeyPress draws each press on screen as a keycap, and because it is an ordinary macOS window rather than an IDE plugin, any display-level capture includes it. A capture scoped to the IDE window alone is the one case that leaves it out.

Continue the topic