Essential IntelliJ shortcuts

keyboard-shortcuts

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+TabSwitches 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 + EView recent Files
While Ctrl + Tab lists the currently open files, Ctrl + E opens the list of recently used files.

Ctrl + BGo 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 ShiftSearch anything
Find anything in your project by quickly double tapping shift. This includes files, actions, classes, basically, anything!

Ctrl + NFind 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 + NFind Resource
Handy if you don’t want to find classes, but text or configuration files.

Ctrl + Shift + TNavigate 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 + F7Show 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 + F12Structure View Popup
Show the list of properties and methods in a popup. Handy to get an idea of what the class is doing.

Ctrl + GGoto 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 + WExpand 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 + SpaceBasic 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 + EnterShow 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 + EnterComplete 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 + DDuplicate 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 + YRemove 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 + MExtract 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 + F6Rename
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 + VIntroduce 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.

Conclusion

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!

9 thoughts on “Essential IntelliJ shortcuts

  1. There’s another really cool plugin “force shortcuts”. It forces you to use shortcuts instead of mouse. For very patient users 🙂

  2. Shortcut for “show usage” is Ctrl+Shift+F7, NOT Ctrl+Alt+F7 (by the way, this last shortcut on a Linux system is opening a different tty, that could be a problem for a non-expert user)

  3. A good shortcut is Ctrl + Shift + A: Find a command and execute it, open a tool window or search for a setting.

    1. Hi Luiz, thanks for that one! I’m aware of this shortcut, it’s just not one me or my colleagues personally use often, hence I didn’t list it here, but it’s a great one indeed, thanks for sharing!

  4. to delete/cut current line I am using ctrl+x, it is easier to access than ctrl+y and also you can paste that line elsewhere

Leave a Reply

Your email address will not be published. Required fields are marked *