Appearance
IntelliJ IDEA
Comprehensive IntelliJ IDEA shortcuts and workflows for Java, Kotlin, and multi-language development.
General Shortcuts
Windows/Linux | macOS | Description |
---|---|---|
Ctrl+Shift+A | Cmd+Shift+A | Find Action |
Double Shift | Double Shift | Search Everywhere |
Ctrl+N | Cmd+O | Go to Class |
Ctrl+Shift+N | Cmd+Shift+O | Go to File |
Ctrl+Alt+Shift+N | Cmd+Option+O | Go to Symbol |
Ctrl+E | Cmd+E | Recent Files |
Ctrl+Shift+E | Cmd+Shift+E | Recent Locations |
Alt+F1 | Option+F1 | Select In |
Ctrl+G | Cmd+L | Go to Line |
Ctrl+Tab | Ctrl+Tab | Switcher |
Navigation
Windows/Linux | macOS | Description |
---|---|---|
Ctrl+B | Cmd+B | Go to Declaration |
Ctrl+Alt+B | Cmd+Option+B | Go to Implementation |
Ctrl+Shift+B | Cmd+Shift+B | Go to Type Declaration |
Ctrl+U | Cmd+U | Go to Super Method |
Alt+F7 | Option+F7 | Find Usages |
Ctrl+F7 | Cmd+F7 | Find Usages in File |
Ctrl+Shift+F7 | Cmd+Shift+F7 | Highlight Usages |
Ctrl+Alt+F7 | Cmd+Option+F7 | Show Usages |
Ctrl+H | Cmd+H | Type Hierarchy |
Ctrl+Shift+H | Cmd+Shift+H | Method Hierarchy |
Ctrl+Alt+H | Ctrl+Option+H | Call Hierarchy |
Editing
Windows/Linux | macOS | Description |
---|---|---|
Ctrl+Space | Ctrl+Space | Basic Code Completion |
Ctrl+Shift+Space | Ctrl+Shift+Space | Smart Code Completion |
Ctrl+Alt+Space | Ctrl+Option+Space | Class Name Completion |
Ctrl+Shift+Enter | Cmd+Shift+Enter | Complete Current Statement |
Ctrl+P | Cmd+P | Parameter Info |
Ctrl+Q | Ctrl+J | Quick Documentation |
Shift+F1 | Shift+F1 | External Documentation |
Ctrl+F1 | Cmd+F1 | Show Error Description |
Alt+Insert | Cmd+N | Generate |
Ctrl+O | Ctrl+O | Override Methods |
Ctrl+I | Ctrl+I | Implement Methods |
Code Formatting
Windows/Linux | macOS | Description |
---|---|---|
Ctrl+Alt+L | Cmd+Option+L | Reformat Code |
Ctrl+Alt+O | Ctrl+Option+O | Optimize Imports |
Ctrl+Alt+I | Ctrl+Option+I | Auto-Indent Lines |
Tab | Tab | Indent Selection |
Shift+Tab | Shift+Tab | Unindent Selection |
Ctrl+X | Cmd+X | Cut Current Line |
Ctrl+C | Cmd+C | Copy Current Line |
Ctrl+D | Cmd+D | Duplicate Line |
Ctrl+Y | Cmd+Backspace | Delete Line |
Ctrl+Shift+J | Ctrl+Shift+J | Join Lines |
Refactoring
Windows/Linux | macOS | Description |
---|---|---|
F6 | F6 | Move |
Shift+F6 | Shift+F6 | Rename |
Ctrl+F6 | Cmd+F6 | Change Signature |
Ctrl+Alt+N | Cmd+Option+N | Inline |
Ctrl+Alt+M | Cmd+Option+M | Extract Method |
Ctrl+Alt+V | Cmd+Option+V | Extract Variable |
Ctrl+Alt+F | Cmd+Option+F | Extract Field |
Ctrl+Alt+C | Cmd+Option+C | Extract Constant |
Ctrl+Alt+P | Cmd+Option+P | Extract Parameter |
Ctrl+Shift+F6 | Cmd+Shift+F6 | Type Migration |
Search and Replace
Windows/Linux | macOS | Description |
---|---|---|
Ctrl+F | Cmd+F | Find |
F3 | Cmd+G | Find Next |
Shift+F3 | Cmd+Shift+G | Find Previous |
Ctrl+R | Cmd+R | Replace |
Ctrl+Shift+F | Cmd+Shift+F | Find in Path |
Ctrl+Shift+R | Cmd+Shift+R | Replace in Path |
Ctrl+F3 | Cmd+F3 | Find Word at Caret |
F4 | F4 | Find Next Occurrence |
Shift+F4 | Shift+F4 | Find Previous Occurrence |
Running and Debugging
Windows/Linux | macOS | Description |
---|---|---|
Shift+F10 | Ctrl+R | Run |
Shift+F9 | Ctrl+D | Debug |
Ctrl+Shift+F10 | Ctrl+Shift+R | Run Context Configuration |
Ctrl+Shift+F9 | Ctrl+Shift+D | Debug Context Configuration |
F8 | F8 | Step Over |
F7 | F7 | Step Into |
Shift+F7 | Shift+F7 | Smart Step Into |
Shift+F8 | Shift+F8 | Step Out |
Alt+F9 | Option+F9 | Run to Cursor |
Alt+F8 | Option+F8 | Evaluate Expression |
F9 | Cmd+Option+R | Resume Program |
Ctrl+F8 | Cmd+F8 | Toggle Breakpoint |
Version Control
Windows/Linux | macOS | Description |
---|---|---|
Ctrl+K | Cmd+K | Commit |
Ctrl+Shift+K | Cmd+Shift+K | Push |
Ctrl+T | Cmd+T | Update Project |
Alt+Shift+C | Option+Shift+C | View Recent Changes |
Alt+9 | Cmd+9 | Version Control Tool Window |
Ctrl+Alt+Z | Cmd+Option+Z | Rollback |
Ctrl+Alt+A | Cmd+Option+A | Add to VCS |
Live Templates
Common Java Templates
Template | Expansion |
---|---|
psvm | public static void main(String[] args) |
sout | System.out.println() |
souf | System.out.printf() |
soutm | System.out.println("methodName") |
soutp | System.out.println("parameterName = " + parameterName) |
soutv | System.out.println("variableName = " + variableName) |
fori | for (int i = 0; i < ; i++) |
iter | for (Type item : collection) |
itar | for (int i = 0; i < array.length; i++) |
ritar | for (int i = array.length - 1; i >= 0; i--) |
Common Kotlin Templates
Template | Expansion |
---|---|
fun | fun functionName() {} |
main | fun main(args: Array<String>) {} |
println | println() |
fori | for (i in 0 until ) |
fore | for (item in collection) |
ifn | if (value != null) |
inn | if (value == null) |
Productivity Features
Code Generation
java
// Generate constructor
Alt+Insert → Constructor
// Generate getters/setters
Alt+Insert → Getter and Setter
// Generate toString()
Alt+Insert → toString()
// Generate equals() and hashCode()
Alt+Insert → equals() and hashCode()
// Generate test methods
Alt+Insert → Test
Postfix Completion
java
// Examples of postfix completion
list.for → for (String item : list)
condition.if → if (condition)
obj.null → if (obj == null)
obj.nn → if (obj != null)
obj.var → Type obj =
obj.return → return obj;
Intentions and Quick Fixes
java
// Common intentions (Alt+Enter)
- Convert to lambda
- Add type annotation
- Create method from usage
- Implement interface
- Add import statement
- Surround with try-catch
Project Management
File and Project Operations
Windows/Linux | macOS | Description |
---|---|---|
Ctrl+Alt+Shift+S | Cmd+; | Project Structure |
Ctrl+Alt+S | Cmd+, | Settings |
Ctrl+Shift+A | Cmd+Shift+A | Find Action |
Ctrl+Shift+F12 | Cmd+Shift+F12 | Toggle Maximized Editor |
Alt+1 | Cmd+1 | Project Tool Window |
Alt+7 | Cmd+7 | Structure Tool Window |
Alt+9 | Cmd+9 | Version Control Tool Window |
Alt+F12 | Option+F12 | Terminal |
Build and Run
bash
# Maven projects
mvn clean compile
mvn test
mvn package
mvn install
# Gradle projects
./gradlew build
./gradlew test
./gradlew run
./gradlew clean
# SBT projects (Scala)
sbt compile
sbt test
sbt run
Best Practices
Code Quality
- Use code inspections and analysis tools
- Follow coding standards and conventions
- Write comprehensive unit tests
- Use meaningful variable and method names
- Keep methods small and focused
Performance Optimization
- Use appropriate data structures
- Avoid premature optimization
- Profile code to identify bottlenecks
- Use lazy initialization when appropriate
- Minimize object creation in loops
Debugging Strategies
- Use conditional breakpoints
- Evaluate expressions during debugging
- Use logging for production debugging
- Step through code systematically
- Examine variable states and call stacks
Plugin Recommendations
- SonarLint: Code quality analysis
- CheckStyle: Code style checking
- FindBugs: Bug pattern detection
- Lombok: Reduce boilerplate code
- Database Tools: Database integration
- Docker: Container support
- Kubernetes: Orchestration support