A good craftsman knows their tools. Being a software developer is no exception. So, while programming and to stay in the flow of coding, it might be worthwhile to know some keyboard shortcuts and to not be distracted by clicking on menu items. In this blogpost I’ll focus on IntelliJ. While IntelliJ has almost a shortcut for everything, there’s no need to know them all to be a productive programmer. What I’ve done instead is to list only the few me and my colleagues use on a daily basis, and mastering these will make you a slightly more proficient software developer.
I’ve split the keyboard shortcut into a few separate groups. The groups are split into editing and navigation (both the IDE as well as the code), to make the use of IntelliJ easier. The IntelliJ keyboard shortcuts below are based on the default Windows settings, if you’re using a different keymap, please have a look at the keymap reference (Help -> Keymap Reference) for the appropriate shortcut.
IntelliJ keyboard navigation shortcuts
Ctrl+Tab – Switches between Tabs
To quickly switch between open files, press Ctrl + Tab. When holding the Ctrl button, it’s possible to step through the list of open files. Releasing the shortcut will focus on the corresponding file.
Ctrl + E – View recent Files
While Ctrl + Tab lists the currently open files, Ctrl + E opens the list of recently used files.
Ctrl + B – Go to declaration / implementation
When pressing Ctrl + B while on a method, it will jump to to the declaration of this method, for example, the interface. However, pressing Ctrl + Alt + B doesn’t jump to the interface, but to the implementation of this interface, which is quite a time saver.
Double Shift – Search anything
Find anything in your project by quickly double tapping shift. This includes files, actions, classes, basically, anything!
Ctrl + N – Find Class
Instead of finding everything, if you know you’re looking for a class, press Ctrl + N and start typing. You don’t have to type the full class name, you can also type only the uppercased letters, or start with an asterix (*) which will be interpreted as a wildcard.
Ctrl + Shift + N – Find Resource
Handy if you don’t want to find classes, but text or configuration files.
Ctrl + Shift + T – Navigate to Test
When you’re slightly test obsessed, navigating between the test and implementation is instant with this shortcut. Also, when going to an implementation class and pressing ctrl + shift + t will automatically create a test class based on your choice of test framework.
Ctrl + Alt + F7 – Show Usages
This shows all usages of the current method, class or variable in a popup dialog, allowing you to quickly navigate to the locations where this element is being used
Ctrl + F12 – Structure View Popup
Show the list of properties and methods in a popup. Handy to get an idea of what the class is doing.
Ctrl + G – Goto Line (or Column)
Handy when one of your colleagues asks what this piece of code is doing at line 45. Pressing Ctrl + G allows you to quickly navigate to the offending piece of code.
F2 – Goto error / warning
If IntelliJ has an error or warning (you know, that small status icon in the top right part of the editor), pressing F2 will bring you to the next warning, and helps you keep that icon green!). Thanks Anton Arhipov for suggesting this one!
IntelliJ Keyboard Editing Shortcuts
Besides navigation, we also want to be able to speed up our typing. The following shortcuts will help in that.
Ctrl + W – Expand Selection
My personally most used shortcut. No longer select text with your mouse, but navigate to an element in the code, and press Ctrl + W. It will expand the selection in a smart way by expanding the word, the statement, the block of code, the method, etc. Especially handy when you want to extract a method. Ctrl + Shift + W will reduce the selection.
Ctrl + Space – Basic Code Completion
The must have shortcut, completes your code by pressing this shortcut. However, be mindful the the selection can be appended (with Enter) or replaced (with Tab). The Tab completion saves you from adding unnecessary characters which you then have to manually remove.
Alt + Enter – Show intentions
Fixes your imports, runs your tests, optimizes your imports, etc etc. If your code is broken, Alt + Enter fixes is. If your code is not broken, Alt + Enter makes your code even better.
Ctrl + Shift + Enter – Complete statement
In my experience, a very under-used statement. Missing some closing braces? Missing a semi colon at the end of your line? Press Ctrl + Shift + Enter and IntelliJ will complete the necessary characters, even if your cursor is not at the end of the line.
Ctrl + D – Duplicate line
In my experience, a lot of people are still selecting the line with their mouse, copy it, and then paste it. Ctrl Y is a time saver: just press it and it will duplicate the time. And if you have multiple lines selected, it will copy the whole block.
Ctrl + Y – Remove line
Similar to Ctrl + D, but even better: instead it of duplicating a line, it removes the line.
Ctrl + / – Comment line
No matter where you are in the line, just press Ctrl + /, and the line will be commented out. I personally never use this to comment code, since that’s something I hardly ever do, but I sometimes turn pieces of code on and off. Remember to never commit turned off code though.
IntelliJ Keyboard Refactoring Shortcuts
One of IntelliJ’s biggest strengths is it’s plethora of refactoring opportunities. While the opportunities to refactor your code go far, in practice, more than 90% of the refactoring keyboard shortcuts are the ones I’ve listed below.
Ctrl + Alt + M – Extract method
Select a piece of code (preferably using the earlier listed Ctrl + W), press Ctrl + Alt + M, and you can extract the selected code to a new method or lambda expression.
Shift + F6 – Rename
Be it a method, a variable or a class, pressing Shift + F6 will rename the currently selected element everywhere in your code base. Be careful though, the default settings of IntelliJ are slightly aggressive and also rename text occurrences, which is often not what you want. Pressing Shift F6 twice will bring you to the rename options, and allow you to customize the settings. I’d recommend only refactoring code, and turn the text options off.
Ctrl + Alt + V – Introduce variable
Again, using Ctrl + W, select a piece of code, press Ctrl + Alt + V, and a new variable is created, often with the correct type and a sensible name. This is quite handy when passing an expression to another method or class, and introducing an assignment to a variable often increases readability.
IntelliJ has more than a 100 shortcuts, but there’s no need to know them all. The above shortcuts, based on comparing the most used shortcuts used by my colleagues and me, should give you a headstart in becoming more productive with IntelliJ.
An extra recommendation is to install the Key Promoter X plugin. This plugin will suggest the corresponding shortcut whenever you use a mouse or menu action. A very helpful tool in learning how to effectively use IntelliJ keyboard shortcuts. Have I missed your favorite shortcut? Please let me know in the comments below!