A deep IntelliJ IDEA shortcuts guide for navigation, editing, refactoring, debugging, and Git.
Search & Navigation (Mac)
Key / Code
Description
Shift + Shift
Search everywhere
Cmd + N
Go to class
Cmd + Shift + N
Go to file
Cmd + Option + Shift + N
Go to symbol
Cmd + E
Recent files
Cmd + B
Go to declaration
Cmd + Option + B
Go to implementation
Search & Navigation (Windows/Linux)
Key / Code
Description
Shift + Shift
Search everywhere
Ctrl + N
Go to class
Ctrl + Shift + N
Go to file
Ctrl + Alt + Shift + N
Go to symbol
Ctrl + E
Recent files
Ctrl + B
Go to declaration
Ctrl + Alt + B
Go to implementation
Editing
Key / Code
Description
Cmd/Ctrl + /
Line comment
Cmd/Ctrl + Shift + /
Block comment
Option/Alt + Shift + Up/Down
Move line
Cmd/Ctrl + D
Duplicate line/selection
Option/Alt + Enter
Show intention actions
Cmd/Ctrl + Option/Alt + L
Reformat code
Refactor
Key / Code
Description
Shift + F6
Rename
Cmd/Ctrl + Option/Alt + V
Extract variable
Cmd/Ctrl + Option/Alt + M
Extract method
Cmd/Ctrl + Option/Alt + C
Extract constant
Cmd/Ctrl + Option/Alt + N
Inline
Find Usage & Hierarchy
Key / Code
Description
Option/Alt + F7
Find usages
Cmd/Ctrl + F7
Show usages in file
Cmd/Ctrl + Option/Alt + H
Call hierarchy
Run & Debug
Key / Code
Description
Ctrl + R (Mac)
Run
Ctrl + D (Mac)
Debug
Shift + F10
Run
Shift + F9
Debug
F8 / F7 / Shift+F8
Step over / into / out
Git
Key / Code
Description
Cmd/Ctrl + K
Commit
Cmd/Ctrl + T
Update project
Cmd/Ctrl + Shift + K
Push
Pro Workflow
Fast loop: search → quick fix → refactor → format → commit.
Shift + Shift # search
Alt/Option + Enter # quick fix
Shift + F6 # rename
Cmd/Ctrl + Alt/Option + L # format
Cmd/Ctrl + K # commit
When These Shortcuts Matter
This page is most useful when you spend a lot of time in IntelliJ IDEA navigating large codebases, renaming symbols, applying inspections, and switching rapidly between implementation, usages, debug sessions, and Git operations. The best return usually comes from mastering search, rename, quick fix, and reformat first.
Common Shortcut Pitfalls
Mac and Windows/Linux keymaps differ more than many people expect, so make sure you are learning the right row. Another issue is using the IDE with a custom keymap or Vim emulation enabled, which can shadow default commands and make generic shortcut lists feel wrong.