INTEGRATED DEVELOPMENT ENVIRONMENTS (IDES)
IntelliJ IDEA
| Date Published: | |
| Last Modified: | 
Quick Reference
| Description | Shortcut | Comment | 
|---|---|---|
| Compile/Run/Debug | ||
| Make Project | Ctrl-F9 (Windows) | You can change the project settings to that artefacts (such as .jar files) are generated at the same time as make. | 
| Run (without debugging) | Shift-F10 (Windows) Ctrl-R (Mac)  | Runs the last active configuration. Debugging IS NOT enabled. | 
| Run (with debugging) | Shift-F9 (Windows) Ctrl-D (Mac)  | Runs the last active configuration. Debugging IS enabled. Note that IdeaVim on Mac can override the Ctrl-D shortcut to jump down half a page. | 
| Step Over | F8 (Windows) | Use to "step over" current line of code when debugging. Step-over is one of the most commonly used debug features. | 
| Step Into | F7 (Windows) | Use to "step into" the current line of code while debugging. This will enter the method (if any) on the current line of code. | 
| Resume Program | Cmd-Alt-R (Mac) | Continue running the program if it has been paused while debugging. | 
| View | ||
| Show Project Window | Alt-1 (Windows) | Shows the file structure of the project (by default this on the left-hand side of the screen). | 
| Show Code Structure Window | Alt-7 (Windows) | This gives a great overview of the class inside the current file (e.g. it lists all the variables and methods). | 
| Quick Documentation | Ctrl-Q (Windows) | Great for checking up on what a class or method does as you are about to use it. | 
| Code | ||
| Reformat Code | Ctrl-Alt-L (Windows) | Corrects the coding indentation of the current file. Great for automatically tidying up code after serious refactoring has taken place. | 
vim Plugin
IntelliJ supports the IdeaVim plugin which adds vim-like functionality to the IDE.
This plugin support configuration using a ~/.ideavimrc file, which is similar in format to a typical .vimrc file, except that it allows special extensions to directly control IntelliJ through an API.
I have noticed that IdeaVim cannot deal with large files that well (e.g. a 50,000 line .json file), and I have to disable the plugin to be able to work with these files.
