{div:class=navigation}
{table:width=100%}
{tr}
{td:width=33%} {align:left}[Previous|User Interface] {span:class=sep}\| {span}{span:class=text}User Interface{span}{align}{td}{td:width=33%} {align:center}[Top|Quick Start] {span:class=sep}\| {span}{span:class=text}Quick Start{span}{align} {td}{td:width=33%} {align:right}[Next|Code Completion] {span:class=sep}\| {span}{span:class=text}Code Completion{span}{align} {td}
{tr}
{table}
{div} |
{redirect: https://www.jetbrains.com/idea/help/intellij-idea-editor-guided-tour.html|delay=0} |
While developing in IntellIJ IDEA you will spend a bulk of your time working in the editor. That’s why it is worth knowing its basic features. |
1. Settings by default
The editor highlights matching brackets, scope, vertical indent guides and usages of the element at the caret by default. You can change this and more in
{span:class=shortcut}Settings{span} |
→ {span:class=shortcut}Editor{span} |
and {span:class=shortcut}Settings{span} |
→ {span:class=shortcut}Editor{span} |
→ {span:class=shortcut}Appearance{span} |
.

Two other options worth mentioning are:
- Allow placement of caret after end of line, enabled by default. If you find this option annoying, you can disable it in the settings.
- Show line numbers; disabled by default.
2. Saving changes
One of the greatest editor features that new users find unusual and later brilliant is how it saves changes. IntelliJ IDEA does it automatically so you don’t need to worry about it. If you decide to roll-back some of your changes, you can always do it by using Local History.
3. Status bar indicators
On the status bar you can find useful information for the currently opened file, such as type of line endings (Windows/Unix), the encoding, the current branch in version control and the read-only status.
4. Method separators
One more useful option (disabled by default) is showing method separators.

5. Structural selection
A definite must-know to be even more productive. Structural selection allows you to select expressions based on grammar. By pressing
{span:class=shortcut}Ctrl{span} |
+ {span:class=shortcut}W{span} |
({span:class=shortcut}Cmd{span} |
+ {span:class=shortcut}W{span} |
for Mac) you keep expanding your selection (starting from the caret). And vice versa, you can shrink it by pressing {span:class=shortcut}Shift{span} |
+ {span:class=shortcut}Ctrl{span} |
+ {span:class=shortcut}W{span} |
({span:class=shortcut}Shift{span} |
+ {span:class=shortcut}Cmd{span} |
+ {span:class=shortcut}W{span} |
for Mac).

6. Column selection
Column selection with mouse is available when you hold
{span:class=shortcut}Alt{span} |
. If you decide to use column selection by default, you can enable it via {span:class=shortcut}Edit{span} |
→ {span:class=shortcut}Column Selection Mode{span} |
.

7. Folding
Another neat feature of the editor is folding. You can fold and unfold fragments of code by pressing
{span:class=shortcut}Ctrl{span} |
+ {span:class=shortcut}.{span} |
({span:class=shortcut}Cmd{span} |
+ {span:class=shortcut}.{span} |
for Mac).

8. Other useful actions
- Move the current line of code (or selected block) via
{span:class=shortcut}Shift{span} |
+ {span:class=shortcut}Ctrl{span} |
+ {span:class=shortcut}Arrows{span} |
({span:class=shortcut}Shift{span} |
+ {span:class=shortcut}Cmd{span} |
+ {span:class=shortcut}Arrows{span} |
for Mac).
- Duplicate a line of code (or selected block) via
{span:class=shortcut}Ctrl{span} |
+ {span:class=shortcut}D{span} |
({span:class=shortcut}Cmd{span} |
+ {span:class=shortcut}D{span} |
for Mac)
- Remove a line of code (or selected block) via
{span:class=shortcut}Ctrl{span} |
+ {span:class=shortcut}Y{span} |
({span:class=shortcut}Cmd{span} |
+ {span:class=shortcut}Y{span} |
for Mac)
- Comment or uncomment a line of code (or selected block) via
{span:class=shortcut}Ctrl{span} |
+ {span:class=shortcut}/{span} |
({span:class=shortcut}Cmd{span} |
+ {span:class=shortcut}/{span} |
for Mac) and {span:class=shortcut}Shift{span} |
+ {span:class=shortcut}Ctrl{span} |
+ {span:class=shortcut}/{span} |
(block comment for selected code).
- Optimize imports via
{span:class=shortcut}Ctrl{span} |
+ {span:class=shortcut}O{span} |
({span:class=shortcut}Cmd{span} |
+ {span:class=shortcut}O{span} |
for Mac).
- Find in the currently opened file via
{span:class=shortcut}Alt{span} |
+ {span:class=shortcut}F3{span} |
({span:class=shortcut}F3{span} |
to the next match rance and {span:class=shortcut}Shift{span} |
+ {span:class=shortcut}F3{span} |
to the previous match). Or, replace in the currently opened file via {span:class=shortcut}Ctrl{span} |
+ {span:class=shortcut}R{span} |
({span:class=shortcut}Cmd{span} |
+ {span:class=shortcut}R{span} |
for Mac).
- Enable/show soft-wraps, disabled by default.
- Paste from stack via
{span:class=shortcut}Shift{span} |
+ {span:class=shortcut}Ctrl{span} |
+ {span:class=shortcut}V{span} |
({span:class=shortcut}Shift{span} |
+ {span:class=shortcut}Cmd{span} |
+ {span:class=shortcut}V{span} |
for Mac).
- Navigate between opened tabs via
{span:class=shortcut}Alt{span} |
+ {span:class=shortcut}Arrows{span} |
({span:class=shortcut}Ctrl{span} |
+ {span:class=shortcut}Arrows{span} |
for Mac).
{div:class=navigation}
{table:width=100%}
{tr}
{td:width=33%} {align:left}[Previous|User Interface] {span:class=sep}\| {span}{span:class=text}User Interface{span}{align}{td}{td:width=33%} {align:center}[Top|Quick Start] {span:class=sep}\| {span}{span:class=text}Quick Start{span}{align} {td}{td:width=33%} {align:right}[Next|Code Completion] {span:class=sep}\| {span}{span:class=text}Code Completion{span}{align} {td}
{tr}
{table}
{div} |