IntelliJ IDEA
Quick Reference
Description | Shortcut | Comment |
---|---|---|
Compile/Run/Debug | ||
Make Project |
| You can change the project settings to that artefacts (such as .jar files) are generated at the same time as make. |
Run (without debugging) |
| Runs the last active configuration. Debugging IS NOT enabled. |
Run (with debugging) |
| 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. You can disable this behaviour so that it “runs” instead. |
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 |
| This gives a great overview of the class inside the current file (e.g. it lists all the variables and methods). This shortcut will also jump the cursor to the code structure window if already open. |
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 supports 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.
Slow Deployment
One problem I have noticed in IntelliJ is the slow upload of files to a server through SSH. Even though IntelliJ was configured to only upload changed files, it was still painfully slow in uploading the 10-20 file changes that occurred whenever I switched between git
branches. Below is an example of the slow transfer speed as reported by IntelliJ after some local files changed:
In the end I gave up on using IntelliJ for this and instead used rsync
, which was about 10-100x faster.