Short and fast keystrokes that the power user lies within.
Editing
| Action | Keystroke |
| Basic code completion (the name of an class, method or variable) | ⌃ + ␣ |
| Smart code completion (filters the list of methods and variables by expected type) | ⌃ + ⇧ + ␣ |
| Class name completion (the name of any project class independently of current imports) | ⌃ + ⌥ + ␣ |
| Parameter info (within method call arguments) | ⌘ + P |
| Quick documentation lookup | ⌃ + J or mid button click |
| External Doc | ⇧ + F1 |
| Brief Info | ⌘ + mouse over code |
| Show descriptions of error or warning at caret | ⌘ + F1 |
| Generate code ... (Getters, Setters, Constructors, hashCode / equals, toString) | ⌘ + N | ⌃ + ↩ | ⌃ + N |
| Override methods | ⌃ + O |
| Implement methods | ⌃ + I |
| Surround with ... (if .. else, try .. catch, for, synchronized, etc.) | ⌘ + ⌥ + T |
| Comment/uncomment with line comment | ⌘ + / |
| Comment/uncomment with block comment | ⌘ + ⌥ + / |
| Select successively increasing code word, blocks, whole sentence | ⌥ + ↑ |
| Decrease current selection to previous state | ⌥ + ↓ |
| Context info | ⌃ + ⇧ + Q |
| Show intention actions and quick-fixes | ⌥ + ↩ |
| Reformat code | ⌘ + ⌥ + L |
| Optimise imports | ⌃ + ⌥ + O |
| Auto-indent line(s) | ⌃ + ⌥ + I |
| Indent selected lines | ⇥ |
| Unindent selected lines | ⇧ + ⇤ |
| Cut current line or selected block to clipboard | ⌘ + X |
| Copy current line or selected block to clipboard | ⌘ + C |
| Paste from clipboard | ⌘ + V |
| Paste from recent buffers ... | ⌘ + ⇧ + V |
| Duplicate current line or selected block | ⌘ + D |
| Delete line at caret | ⌘ + ⌫ |
| Smart line join | ⌃ + ⇧ + J |
| Smart line split | ⌘ + ↩ |
| Start new line | ⇧ + ↩ |
| Toggle case for word at caret or selected block | ⌘ + ⇧ + U |
| Select till code block end | ⌘ + ⇧ + ] |
| Select till code block start | ⌘ + ⇧ + [ |
| Delete to word end | ⌥ + ⌦ |
| Delete to word start | ⌥ + ⌫ |
| Expand code block | ⌘ + + |
| Collapse code block | ⌘ + - |
| Expand all | ⌘ + ⇧ + + |
| Collapse all | ⌘ + ⇧ + - |
| Close active editor tab | ⌘ + W |
| Move caret line up | ⌘ + ⇧ + ↑ | ⌥ + ⇧ + ↑ |
| Move caret line down | ⌘ + ⇧ + ↓ | ⌥ + ⇧ + ↓ |
Search / Replace
| Action | Keystroke |
| Search everywhere | double ⇧ |
| Find | ⌘ + F |
| Find next | ⌘ + G |
| Find previous | ⌘ + ⇧ + G |
| Replace | ⌘ + R |
| Find in path | ⌘ + ⇧ + F |
| Replace in path | ⌘ + ⇧ + R |
| Search structurally (Ultimate Edition only) | ⌘ + ⇧ + S |
| Replace structurally (Ultimate Edition only) | ⌘ + ⇧ + M |
Usage Search
| Action | Keystroke |
| Find usages | ⌥ + F7 |
| Find usages in file | ⌘ + F7 |
| Highlight usages in file | ⌘ + ⇧ + F7 |
| Show usages | ⌘ + ⌥ + F7 |
Compile and Run
| Action | Keystroke |
| Make project (compile modifed and dependent) | ⌘ + F9 |
| Compile selected file, package or module | ⌘ + ⇧ + F9 |
| Select configuration and run | ⌃ + ⌥ + R |
| Select configuration and debug | ⌃ + ⌥ + D |
| Run | ⌃ + R |
| Debug | ⌃ + D |
| Run context configuration from editor | ⌃ + ⇧ + R |
| Debug context configuration from editor | ⌃ + ⇧ + D |
Debugging
| Action | Keystroke |
| Step over | F8 |
| Step into | F7 |
| Smart step into | ⇧ + F7 |
| Step out | ⇧ + F8 |
| Run to cursor | ⌥ + F9 |
| Evaluate expression | ⌥ + F8 |
| Resume program | ⌘ + ⌥ + R |
| Toggle breakpoint | ⌘ + F8 |
| View breakpoints | ⌘ + ⇧ + F8 |
Navigation
| Action | Keystroke |
| Go to class | ⌘ + O |
| Go to file | ⌘ + ⇧ + O |
| Go to symbol | ⌘ + ⌥ + O |
| Go to head of the line | ⌘ + → |
| Go to end of the line | ⌘ + ← |
| Go to next editor tab | ⌃ + → |
| Go to previous editor tab | ⌃ + ← |
| Go to next editor word | ⌥ + → |
| Go to previous editor word | ⌥ + ← |
| Go back to previous tool window | F12 |
| Go to editor (from tool window) | ⎋ |
| Hide active or last active window | ⇧ + ⎋ |
| Close active run / messages / find / ... tab | ⌘ + ⇧ + F4 |
| Go to line | ⌘ + L |
| Recent files popup | ⌘ + E |
| Recent edited files popup | ⌘ + ⇧ + E |
| Navigate forward | ⌘ + ⌥ + → |
| Navigate back | ⌘ + ⌥ + ← |
| Navigate to last edit location | ⌘ + ⇧ + ⌫ |
| Select current file or symbol in any view | ⌥ + F1 |
| Go to declaration | ⌘ + B | ⌘ + click |
| Go to implementation(s) | ⌘ + ⌥ + B |
| Open quick definition lookup | ⌥ + ␣ | ⌘ + Y |
| Go to type declaration | ⌃ + ⇧ + B |
| Go to super method / super class | ⌘ + U |
| Go to previous method | ⌃ + ↑ |
| Go to next method | ⌃ + ↓ |
| Move to code block end | ⌘ + ] |
| Move to code block start | ⌘ + [ |
| File structure popup | ⌘ + F12 |
| Type hierarchy | ⌃ + H |
| Method hierarchy | ⌘ + ⇧ + H |
| Call hierarchy | ⌃ + ⌥ + H |
| Next highlighted error | F2 |
| Previous highlighted error | ⇧ + F2 |
| Edit source | F4 |
| View source | ⌘ + ↓ |
| Show navigation bar | ⌥ + Home ( Fn + ← for Home key) |
| Toggle bookmark | F3 |
| Toggle bookmark with mnemonic | ⌥ + F3 |
| Go to numbered bookmark | ⌃ + 0 ... ⌃ + 9 |
| Show bookmarks | ⌘ + F3 |
Refactoring
| Action | Keystroke |
| Copy | F5 |
| Move | F6 |
| Safe delete | ⌘ + ⌫ |
| Rename | ⇧ + F6 |
| Change signature | ⌘ + F6 |
| Inline | ⌘ + ⌥ + N |
| Extract Method | ⌘ + ⌥ + M |
| Extract Variable | ⌘ + ⌥ + V |
| Extract Field | ⌘ + ⌥ + F |
| Extract Constant | ⌘ + ⌥ + C |
| Extract Parameter | ⌘ + ⌥ + P |
VCS / Local History
| Action | Keystroke |
| Commit project to VCS | ⌘ + K |
| Update project from VCS | ⌘ + T |
| View recent changes | ⌥ + ⇧ + C |
| 'VCS' quick popup | ⌃ + V |
Live Templates
| Action | Keystroke |
| Surround with Live Template | ⌘ + ⌥ + J |
| Insert Live Template | ⌘ + J |
General
| Action | Keystroke |
| Open corresponding tool window | ⌘ + 0 ... ⌘ + 9 |
| Save all | ⌘ + S |
| Synchronise | ⌘ + ⌥ + Y |
| Toggle full screen mode | ⌃ + ⌘ + F |
| Toggle maximizing editor | ⌘ + ⇧ + F12 |
| Add to favourites | ⌥ + ⇧ + F |
| Inspect current file with current profile | ⌥ + ⇧ + I |
| Quick switch current scheme | ⌃ + ` |
| Open Settings dialog | ⌘ + , |
| Open Project Structure dialog | ⌘ + ; |
| Find Action | ⇧ + ⌘ + A |
| Quick switch current scheme | ⌃ + ` |
| Switch between tabs and tool window | ⌃ + ⇥ |
Select Text
| Action | Keystroke |
| Select a retangular block of text | ⌥ + hold and drag mouse |
| Add carets at multiple location | ⌥ + ⇧ + mouse click |
| Switch between column and row selection | ⌘ + ⇧ + 8 |
| Select the next occurrence | ⌃ + G |
| Unselect the next occurrence | ⌃ + ⇧ + G |
| Select all occurrences | ⌃ + ⌘ + G |
| Select one letter | ⇧ + → |
| Unselect one letter | ⇧ + ← |