Learn keymap with Key Promoter
To learn your way around IntelliJ IDEA's keyboard shortcuts there's nice "Key Promoter" plugin to train yourself. It prompts whenever you use the mouse when you could've used the keyboard instead (similar to Eclipse's Mousefeed).
To install the plugin:
- Ctrl+Alt+S to pull up the Settings screen
- Filter on "plugin". Click "Plugins", then "Browse Repositories" at the bottom
- Filter on "key promoter"
- Double click to install
Essential IntelliJ IDEA keyboard shortcuts
You may be tempted to just go with the Eclipse keymap but it's better to learn the IDEA way although it's quite irritating at start. You also should change some default IDEA keyboard shortcuts to better ones like "closing editor window" with Ctrl+F4 which is too cumbersome compared to the de facto Ctrl+W. And changing "comment current line or selection" with Ctrl+/ which is impossible with Finnish keyboards to Ctrl+7.
If you want to know how Eclipse shortcuts map to IDEA there's nice post about IntelliJ IDEA shortcuts for Eclipse users and I added some in my list.
Recent Viewed or edited Files: CTLR + E / CTRL + SHIFT + E
Shows you a popup with all the recent files that you have opened or actually changed in the IDE. If you start typing, you can filter the files.
Go to Class or file: CTRL + N and CTRL + Shift + N
Allows you to search by name for a Java file in your project. If you combine it with SHIFT, it searches any file. Adding ALT on top of that it searches for symbols. (Eclipse: Ctrl+Shift+T and Ctrl+Shift+R)
Find and Replace in Path: CTRL + SHIFT + F / CTRL + SHIFT + R
Allows you to find in files or replace in files. (Eclipse: Ctrl+H)
Incremental Find: F3 / CTRL + L
When using CTLR-F to find in current file the F3 lets you to loop through the results. (Eclipse: Ctrl+K)
Delete line: CTRL + Y
Delete current line under cursor. Yank it. (Eclipse: Ctrl+D)
Goto line: CTRL + G
Go to given line number. (Eclipse: Ctrl-L)
Syntax Aware Selection: CTRL + W
Allows you to select code with context. Awesome when you need to select large blocks or just specific parts of a piece of code.
Complete Statement: CTRL + SHIFT + ENTER
This will try to complete your current statement. How? By adding curly braces, or semicolon and line change.
Smart Type Completion: CTRL + SHIFT + SPACE
Like auto complete (CTRL + SPACE) but if you add a SHIFT you get the smart completion. This means that the IDE will try to match expected types that suit the current context and filter all the other options.
Reformat source code and optimize imports: CTRL + ALT + L
Allows you to reformat source code to meet the requirements of your code style. Lays out spacing, indents, keywords etc. Reformatting can apply to the selected text, entire file, or entire project.
Quick Fix: Alt+Enter
Gives you a list of intentions applicable to the code at the caret.
Paste one of the previous values from clipboard: CTRL + SHIFT + V
Shows you a dialog to select previous value from the clipboard to be pasted.
Comment or uncomment line or block: Ctrl+7 / Ctrl+Shift+7
Allows you to comment or uncomment the current line or selected block of source code. This is originally Ctrl + / (Slash) which is impossible with Finnish keyboard layouts.
Show Diff (in Changes): CTRL + D
In Changes tab compares the file with latest repository version.
Highlight Usages: CTRL + SHIFT + F7
Place the cursor in a element and after pressing the cursor the IDE will highlight all the occurrences of the selected element.
Go to Declaration: CTRL + B
If you place the cursor in a class, method or variable and use the shortcut you will immediately jump to the declaration of the element.
Navigate Between Methods: ALT + UP/DOWN Arrows
Jump between methods.
Refactoring String Fragments: CTRL + ALT + V
Refactor hardcoded string into variable/field/constant. Select the section of the String you want to extract, and use the normal "Extract..." shortcuts to extract it into a variable.
Other useful keyboard shortcuts
There are many useful keyboard shortcuts and you can print them from Help > Default Keymap Reference. Here are some more shortcuts which are also handy.
Update application: CTRL + F10
Current file structure: CTRL + F12
Bookmarks: F11 and SHIFT + F11
Generate Getters & Setters (in editor): ALT + INSERT
Create New _* (in project navigator): ALT + INSERT
Refactor – Rename: SHIFT + F6
Open Settings CTRL + Alt + S
Duplicate line: CTRL + D
Move line: CTRL + ALT + UP / DOWN
Find Command: CTRL + SHIFT + A
Show usages in a pop-up list: CTRL + Alt + F7
Extract Variable/Method/Constant/Field: CTRL + ALT + V/M/C/F
Quick JavaDoc Popup: CTRL + Q
Tab switcher: CTRL + TAB
Jump to Project Navigator: ALT + 1
Jump back to last tool window/panel: F12
Jump to beginning/end of block (e.g., method start/end): CTRL + [ and CTRL + ]
Toggle uppercase/lowercase of selection: CTRL + SHIFT + U
Toggle collapse/expand: CTRL + .
Toggle full screen editor (hide other tool windows): CTRL + SHIFT + F12
Not a keyboard shortcut exactly but the "iter" smart template is great. If you want to iterate though something using a for loop type "iter" then TAB to use the live template. It will figure out the most likely variable you want to iterate over and generate a for loop for it. In Eclipse it worked more logically with just typing for and then autocomplete.