Overview

Switching from Eclipse to IntelliJ IDEA, especially if you've been using Eclipse for a long time, requires understanding some fundamental differences between the two IDEs, including their user interfaces, compilation methods, shortcuts, project configuration and other aspects.

User interface

No workspace

The first thing you'll notice when launching IntelliJ IDEA is that it has no workspace concept. This means that you can work with only one project at a time. While in Eclipse you normally have a set of projects that may depend on each other, in IntelliJ IDEA you have a single project that consists of a set of modules.

If you have several unrelated projects, you can open them in separate windows.

If you still want to have several unrelated projects opened in one window, as a workaround you can configure them all in IntelliJ IDEA as modules.

The table below compares the terms in Eclipse and IntelliJ IDEA:

EclipseIntelliJ IDEA
WorkspaceProject
ProjectModule
FacetFacet
LibraryLibrary
JRESDK
Classpath variablePath variable

No perspectives

The second big surprise when people are switching to IntelliJ IDEA is that it has no perspectives.

It means that you don't need to switch between different workspace layouts manually to perform different tasks. The IDE follows your context and brings up the relevant tools automatically.

migration_guide_debugger_1

Tool windows

Just like in Eclipse, in IntelliJ IDEA you also have tool windows. To open a tool window, simply click it in the tool window bar:

migration_guide_tool_window_bar_2

If the tool window bar is hidden, you can open any tool window by hovering over the corresponding icon in the bottom left corner:

migration_guide_tool_window_bar_1

If you want to make the tool window bar visible for a moment, you can press Alt (Cmd for OS X) twice and hold it.

If you don't want to use the mouse, you can always switch to any toolbar by pressing the shortcut assigned to it. The most important shortcuts to remember are:

  • Project: ⌘1 or ⌘1⌘1 or ⌘1⌥ 1, ⌥1 or ⌥1⌥ 1, ⌥1 or ⌥1
  • Version Control: ActivateChangesToolWindowActivateChangesToolWindowActivateChangesToolWindowActivateChangesToolWindowActivateChangesToolWindowActivateChangesToolWindowActivateChangesToolWindowActivateChangesToolWindowActivateChangesToolWindow
  • Terminal: ⌥F12 or ⌥F12⌥F12 or ⌥F12⌥F12 or ⌥F12⌥ F12, ⌥F12 or ⌥F12⌥ F12, ⌥F12 or ⌥F12

Another thing about tool windows is that you can drag, pin, unpin, attach and detach them:

migration_guide_tool_windows

To help store/restore the tool windows layout, there are two useful commands:

  • Window | Store Current Layout as Default
  • Window | Restore Default Layout (also available via ⌘F12 or ⌘F12⌘F12 or ⌘F12⌘O or ⌘O^ F12, ⌃F12 or ⌃F12^ F12, ⌃F12 or ⌃F12)

Multiple windows

Windows management in IntelliJ IDEA is slightly different from Eclipse. You can't open several windows with one project, but you can detach any number of editor tabs into separate windows.

Auto-scrolling to/from sources

By default, IntelliJ IDEA doesn't change the selection in the Project tool window when you switch between editor tabs. However, you can enable it in the tool window settings:

migration_guide_auto_scroll_from_source

Enabling line numbers

Line numbers are not shown in the editor by default. To enable them, go to Settings/Preferences | Editor | General | Appearance | Show line numbers. There you will also find other useful settings.

General workflows

No 'save' button

Time for some really shocking news: IntelliJ IDEA has no Save button. Since in IntelliJ IDEA you can undo refactorings and revert changes from Local History, it makes no sense to ask you to save your changes every time.

Still, it's worth knowing that physical saving to disk is triggered by certain events, including compilation, closing a file, switching focus out of the IDE, etc. You can change this behavior via Settings | Appearance & Behavior | System Settings:

migration_guide_save_settings

No save actions

One of the features you may miss in IntelliJ IDEA as an Eclipse user is save actions, i.e. the actions triggered automatically on save, such as reformatting code, organizing imports, adding missing annotations and the final modifier, etc. Instead, IntelliJ IDEA offers you to run the corresponding actions automatically on commit:

migration_guide_commit

Or manually:

  • Code | Reformat Code (⌥⌘L or ⌥⌘L⌥⌘L or ⌥⌘L⇧⌘F or ⇧⌘F⌥ F8, ^ ⌥ F, ⌥F8, ⌃⌥F, ⌥F8 or ⌃⌥F)
  • Code | Optimize Imports (⌃⌥O or ⌃⌥O⌥⌘O or ⌥⌘O⇧⌘O or ⇧⌘O^ ⌥ O, ⌃⌥O or ⌃⌥O^ ⌥ O, ⌃⌥O or ⌃⌥O)
  • Analyze | Code Cleanup

If, for some reason, you can't live without an Eclipse save action, you can install a plugin that imitates Eclipse save actions.

Compilation

The way IntelliJ IDEA compiles projects is different from Eclipse in a number of ways.

Auto-compilation

By default, IntelliJ IDEA doesn't automatically compile projects on saving because normally we don't invoke the save action explicitly in IntelliJ IDEA.

If you want to mimic the Eclipse behavior, you can invoke the Make Project action (⌘F9 or ⌘F9⌘F9 or ⌘F9⌘B or ⌘BF7, F7 or F7^ F9, ⌃F9 or ⌃F9) - it will save the changed files and compile them. For your convenience, you can even reassign the ⌘S or ⌘S⌘S or ⌘S⌘S or ⌘S^ S, ⌃S or ⌃S^ X, Ctrl S, ⌃X, ⌃S or ⌃X, ⌃S shortcut to the Make Project action.

To enable automatic compilation, navigate to Settings/Preferences | Build, Execution, Deployment | Compiler and select the Make project automatically option:

migration_guide_complier_settings

Note that automatic compilation in IntelliJ IDEA differs from that in Eclipse. In Eclipse it's not fully automatic, as it is triggered by the save action invoked by the user explicitly, whereas in IntelliJ IDEA it is invoked implicitly when you type in the editor.

This is why, even if the Make project automatically option is enabled, IntelliJ IDEA doesn't perform automatic compilation if at least one application is running: it will reload classes in the application implicitly. In this case you can call Build | Make Project (⌘F9 or ⌘F9⌘F9 or ⌘F9⌘B or ⌘BF7, F7 or F7^ F9, ⌃F9 or ⌃F9).

Problems tool window

The Problems tool window appears if the Make project automatically option is enabled in the Compiler settings. It shows a list of problems that were detected on project compilation:

migration_guide_problems_tool_window

Eclipse compiler

While Eclipse uses its own compiler, IntelliJ IDEA uses the javac compiler bundled with the project JDK. If you must use the Eclipse compiler, navigate to Settings?Preferences | Build, Execution, Deployment | Compiler | Java Compiler and select it as shown below:

migration_guide_eclipse_compiler

The biggest difference between the Eclipse and javac compilers is that the Eclipse compiler is more tolerant to errors, and sometimes lets you run code that doesn't compile.

In situations when you need to run code with compilation errors in IntelliJ IDEA, replace the Make option in your run configuration with Make, no error check:

migration_guide_make_no_error_check

Shortcuts

IntelliJ IDEA shortcuts are completely different from those in Eclipse.

To see how the top Eclipse actions (and their shortcuts) are mapped to IntelliJ IDEA, refer to Migrating from Eclipse to IntelliJ IDEA (you may want to print it out to always have it handy).

If you choose a keymap specific to your operating system (Default for Windows/Linux or OS X 10.5+ for OS X), there may be conflicts between shortcuts used in IntelliJ IDEA and your OS. To avoid such conflicts, we recommend tweaking your OS shortcut settings (refer to Keymap for more details).

Eclipse keymap

For Eclipse users who prefer not to learn new shortcuts, IntelliJ IDEA provides the Eclipse keymap which closely mimics its shortcuts:

migration_guide_eclipse_keymap

Find action

When you don't know the shortcut for some action, try using the Find action feature available via ⇧⌘A or ⇧⌘A⇧⌘A or ⇧⌘A⌘3 or ⌘3^ ⇧ A, ⌃⇧A or ⌃⇧A^ ⇧ A, ⌃⇧A or ⌃⇧A. Start typing to find an action by its name, see its shortcut, or call it:

migration_guide_find_action

Coding assistance

Both Eclipse and IntelliJ IDEA provide coding assistance features, such as code completion, code generation, quick-fixes, live templates, etc.

Quick-fixes

To apply a quick-fix in IntelliJ IDEA, press ⌥⏎ or ⌥⏎⌥⏎ or ⌥⏎⌘1 or ⌘1⌥ Enter, ⌥⏎ or ⌥⏎⌥ Enter, ⌥⏎ or ⌥⏎:

migration_guide_quick_fix

All quick-fixes are based on inspections configured in Settings | Inspections:

migration_guide_inspection_settings

If you want to apply a quick-fix to several places at once (i.e. to a whole folder, module or even a project), you can do it by running the corresponding inspection via Analyze | Run Inspection By Name or by running the whole batch of inspections via Analyze | Inspect Code:

migration_guide_batch_inspections

Apart from outright problems, IntelliJ IDEA also recognizes code constructs that can be improved or optimized via the so-called intentions (also available with ⌥⏎ or ⌥⏎⌥⏎ or ⌥⏎⌘1 or ⌘1⌥ Enter, ⌥⏎ or ⌥⏎⌥ Enter, ⌥⏎ or ⌥⏎):

migration_guide_intention
EclipseIntelliJ IDEA
ActionShortcutActionShortcut
Quick fix^ 1Show intention action⌥⏎ or ⌥⏎⌥⏎ or ⌥⏎⌘1 or ⌘1⌥ Enter, ⌥⏎ or ⌥⏎⌥ Enter, ⌥⏎ or ⌥⏎

Generating code

The key action for generating code is Code | Generate, available via ⌘N, ⌃⏎, ⌘N or ⌃⏎⌃N, ⌃⏎, ⌃N or ⌃⏎⌘N, ⌃⏎, ⌘N or ⌃⏎^ N, ⌥ Insert, ⌃N or ⌃N⌥ Insert:

migration_guide_generate _code

This action is context-sensitive and is available not only within the editor, but also in the Project tool window and the Navigation bar:

migration_guide_cgenerate_code_project_tree

Code completion

IntelliJ IDEA provides several different types of code completion, which include:

  • Basic completion
  • Second basic completion
  • Smart completion
  • Second smart completion
  • Statement completion

To learn more about the differences between these completion types, refer to Top 20 Features of Code Completion in IntelliJ IDEA.

By default, IntelliJ IDEA doesn't show the Documentation popup for the selected item, but you can enable it in Settings/Preferences | Editor | Code Completion | Autopopup documentatoin in (ms):

migration_guide_code_completion_settings

If you don't want to enable this option, you can manually invoke this popup by pressing F1, ⌃J, ⌃Button2 Click, F1, ⌃J or ⌃Button2 Click⌃J, ⌃Button2 Click, ⌃J or ⌃Button2 Click⌥Button2 Click, F2, ⌥Button2 Click or F2^ Q, ⌃Q or ⌃Q^ Q, ⌥ Button2 Click, ⌃Q, ⌥Button2 Click, ⌃Q or ⌥Button2 Click when you need it:

migration_guide_code_completion_quick_doc

When the caret is within the brackets of a method or a constructor, you can get the info about the parameters by calling Parameter Info with ⌘P or ⌘P⌘P or ⌘P⌃⇧Space or ⌃⇧Space^ ⇧ Space, ⌃⇧Space or ⌃⇧Space⇧ ⌥ P, ⌥⇧P or ⌥⇧P:

migration_guide_parameter_info

EclipseIntelliJ IDEA
ActionShortcutActionShortcut
Code completion^ SpaceBasic completion⌃Space or ⌃Space⌃Space or ⌃Space⌃Space or ⌃Space^ Space, ⌃Space or ⌃Space⌥ Slash, ⌥/ or ⌥/
--Smart completion⌃⇧Space or ⌃⇧Space⌃⇧Space or ⌃⇧Space⌥⇧Space or ⌥⇧Space⇧ ⌥ Space, ⌥⇧Space or ⌥⇧Space^ ⇧ Space, ^ ⌥ Slash, ⌃⇧Space, ⌃⌥/, ⌃⇧Space or ⌃⌥/
--Statement completion⇧⌘⏎ or ⇧⌘⏎⇧⌘⏎ or ⇧⌘⏎⇧⌘⏎ or ⇧⌘⏎^ ⇧ Enter, ⌃⇧⏎ or ⌃⇧⏎^ ⇧ Enter, ⌃⇧⏎ or ⌃⇧⏎

Templates

You may be used to typing main in the editor and then calling code completion to have it transformed into a main method definition. However, IntelliJ IDEA templates are a little different:

TemplateEclipseIntelliJ IDEA
Define a main methodmainpsvm
Iterate over an arrayforitar
Iterate over a collectionforitco
Iterate over a listforitli
Iterate over an iterable using foreach syntaxforeachiter
Print to System.outsysoutsout
Print to System.errsyserrserr
Define a static fieldstatic_finalpsf

The list of available templates can be found in Settings/Preferences | Editor | Live Templates. There you can also add your own templates or modify any existing ones.

While IntelliJ IDEA suggests templates in code completion results, you can quckly expand any template without using code completion simply by pressing Tab.

Postfix templates

In addition to 'regular' templates, IntelliJ IDEA offers the so-called postfix templates. They are useful when you want to apply a template to an expression you've already typed. For instance, type a variable name, add .ifn and press Tab. IntelliJ IDEA will turn your expression into a if (...==null){...} statement.

To see a complete list of available postfix templates, go to Settings/Preferences | Editor | General | Postfix Completion.

Surround with live template

The surround with templates is another addition that works similarly to live templates but can be applied to the selected code with ⌥⌘J or ⌥⌘J⌥⌘J or ⌥⌘J⌥⌘J or ⌥⌘J^ ⌥ J, ⌃⌥J or ⌃⌥J^ ⌥ J, ⌃⌥J or ⌃⌥J.

To define your own surround with template, go to Settings/Preferences | Editor | General | Live Templates and use $SELECTION$ within the template text:

$LOCK$.readLock().lock();
try {
   $SELECTION$
       } finally {
   $LOCK$.readLock().unlock();
}
           

Navigation

The table below roughly maps the navigation actions available in Eclipse with those in IntelliJ IDEA:

EclipseIntelliJ IDEA
ActionShortcutActionShortcut
Quick access^ 3Search everywhereShift x 2
Open type^ ⇧ TNavigate to class⌘O or ⌘O⌘N or ⌘N⇧⌘T or ⇧⌘T^ Comma, ⌃, or ⌃,⇧ ⌥ G, ⌥⇧G or ⌥⇧G
Open resource^ ⇧ RNavigate to file⇧⌘O or ⇧⌘O⇧⌘N or ⇧⌘N⇧⌘R or ⇧⌘R^ ⇧ N, ⌃⇧N or ⌃⇧N^ X, Ctrl F, ⌃X, ⌃F or ⌃X, ⌃F
--Navigate to symbol⌥⌘O or ⌥⌘O⌥⇧⌘N or ⌥⇧⌘N⌥⌘O or ⌥⌘O^ ⇧ ⌥ N, ⌃⌥⇧N or ⌃⌥⇧N^ ⇧ ⌥ N, ⌃⌥⇧N or ⌃⌥⇧N
Quick switch editor^ ESwitcher⌃⇥, ⌃⇧⇥, ⌃⇥ or ⌃⇧⇥⌃⇥, ⌃⇧⇥, ⌃⇥ or ⌃⇧⇥⌃⇥, ⌃⇧⇥, ⌃⇥ or ⌃⇧⇥^ Tab, ^ ⇧ Tab, ⌃⇥, ⌃⇧⇥, ⌃⇥ or ⌃⇧⇥^ X, B, ⌃X, B or ⌃X, B
--Recent files⌘E or ⌘E⌘E or ⌘E⌘E or ⌘E^ E, ⌃E or ⌃E
Open declarationF3Navigate to declaration⌘B, ⌘Button1 Click, Button2 Click, ⌘B, ⌘Button1 Click or Button2 Click⌘B, ⌘Button1 Click, Button2 Click, ⌘B, ⌘Button1 Click or Button2 ClickF3, ⌃Button1 Click, F3 or ⌃Button1 ClickF12, ⇧ F2, ^ B, ^ Button1 Click, Button2 Click, F12, ⇧F2, ⌃B, ⌃Button1 Click, Button2 Click, F12, ⇧F2, ⌃B, ⌃Button1 Click or Button2 Click^ ⌥ G, Escape, Period, ⌥ Period, ^ Button1 Click, ⌃⌥G, ⎋, ., ⌥., ⌃Button1 Click, ⌃⌥G, ⎋, ., ⌥. or ⌃Button1 Click
Open type hierarchyF4Navigate to type hierarchy⌃H or ⌃H⌃H or ⌃HF4 or F4⌥ H, ⌥H or ⌥H^ H, ⌃H or ⌃H
--Show UML popup⌥⌘U or ⌥⌘U⌥⌘U or ⌥⌘U⌥⌘U or ⌥⌘U^ ⌥ U, ⌃⌥U or ⌃⌥U^ ⌥ U, ⌃⌥U or ⌃⌥U
Quick outline^ OFile structure⌘F12 or ⌘F12⌘F12 or ⌘F12⌘O or ⌘O^ F12, ⌃F12 or ⌃F12^ F12, ⌃F12 or ⌃F12
Back^ [Back⌘[, ⌥⌘←, Button4 Click, ⌘[, ⌥⌘← or Button4 Click⌥⌘←, Button4 Click, ⌥⌘← or Button4 Click⌘[, Button4 Click, ⌘[ or Button4 Click^ ⌥ Left, Button4 Click, ⌃⌥←, Button4 Click, ⌃⌥← or Button4 Click^ ⌥ Left, Button4 Click, ⌃⌥←, Button4 Click, ⌃⌥← or Button4 Click
Forward^ ]Forward⌘], ⌥⌘→, Button5 Click, ⌘], ⌥⌘→ or Button5 Click⌥⌘→, Button5 Click, ⌥⌘→ or Button5 Click⌘], Button5 Click, ⌘] or Button5 Click^ ⌥ Right, Button5 Click, ⌃⌥→, Button5 Click, ⌃⌥→ or Button5 Click^ ⌥ Right, Button5 Click, ⌃⌥→, Button5 Click, ⌃⌥→ or Button5 Click

Later, when you get used to these navigation options and need more, refer to Top 20 Navigation Features in IntelliJ IDEA.

Refactorings

The following table maps the shortcuts for the most common refactorings in Eclipse with those in IntelliJ IDEA:

EclipseIntelliJ IDEA
ActionShortcutActionShortcut
Extract local variable^ ⌥ LExtract variable⌥⌘V or ⌥⌘V⌥⌘V or ⌥⌘V⌥⌘L or ⌥⌘L^ ⌥ V, ⌃⌥V or ⌃⌥V^ ⌥ V, ⌃⌥V or ⌃⌥V
Assign to field^ 2Extract field⌥⌘F or ⌥⌘F⌥⌘F or ⌥⌘F⌥⌘F or ⌥⌘F^ ⌥ F, ⌃⌥F or ⌃⌥F
Show refactor quick menu^ ⌥ TRafactor this⌃T or ⌃T⌥⇧⌘T or ⌥⇧⌘T⌃T or ⌃T^ ⇧ ⌥ T, ⌃⌥⇧T or ⌃⌥⇧T^ ⇧ ⌥ T, ⌃⌥⇧T or ⌃⌥⇧T
Rename^ ⌥ RRename⇧F6 or ⇧F6⇧F6 or ⇧F6⇧F6 or ⇧F6⇧ F6, ⇧F6 or ⇧F6⇧ F6, ⇧F6 or ⇧F6

To learn more about many additional refactorings that IntelliJ IDEA offers, refer to Top 20 Refactoring Features in IntelliJ IDEA

Undo

Sometimes, refactorings may affect a lot of files in a project. IntelliJ IDEA not only takes care of applying changes safely, but also lets you revert them. To undo the last refactoring, switch the focus to the Project tool window and press ⌘Z or ⌘Z⌘Z or ⌘Z⌘Z or ⌘Z^ Z, ⌃Z or ⌃Z^ ⇧ Minus, ^ Slash, ⌃⇧-, ⌃/, ⌃⇧- or ⌃/.

Search

Below is a map of the most common search actions and shortcuts:

EclipseIntelliJ IDEA
ActionShortcutActionShortcut
Open search dialog^ HFind in path⇧⌘F or ⇧⌘F⌃⇧F or ⌃⇧F⌃H or ⌃H^ ⇧ F, ⌃⇧F or ⌃⇧F^ ⇧ F, ⌃⇧F or ⌃⇧F
References in workspace^ ⇧ GFind usages⌥F7 or ⌥F7⌥F7 or ⌥F7⇧⌘G or ⇧⌘G⇧ ⌥ F7, ⌥⇧F7 or ⌥⇧F7⌥ F7, ⇧ ⌥ S, ⌥F7, ⌥⇧S, ⌥F7 or ⌥⇧S
--Show usages⌥⌘F7 or ⌥⌘F7⌥⌘F7 or ⌥⌘F7⌥⌘F7 or ⌥⌘F7^ ⌥ F7, ⌃⌥F7 or ⌃⌥F7^ ⌥ F7, ⌃⌥F7 or ⌃⌥F7
--Find usages settings⌥⇧⌘F7 or ⌥⇧⌘F7⌥⇧⌘F7 or ⌥⇧⌘F7⌥⇧⌘F7 or ⌥⇧⌘F7^ ⇧ ⌥ F7, ⌃⌥⇧F7 or ⌃⌥⇧F7^ ⇧ ⌥ F7, ⌃⌥⇧F7 or ⌃⌥⇧F7
Occurrences in file^ ⌥ UHighlight usages in file⌘F7 or ⌘F7⌘F7 or ⌘F7⇧⌘U or ⇧⌘U^ ⇧ F7, ⇧ F12, ⌃⇧F7, ⇧F12, ⌃⇧F7 or ⇧F12^ F7, ⌃F7 or ⌃F7

Code formatting

IntelliJ IDEA code formatting rules (available via Settings/Preferences | Editor | Code Style) are similar to those in Eclipse, with some minor differences. You may want to take note of the fact that the Using the Tab char option is disabled by default, the Indent size may be different, etc.

migration_guide_code_style_java

If you would like to import your Eclipse formatter settings, go to Settings/Preferences | Editor | Code Style | Java, click Manage, click Import and select the exported Eclipse formatter settings (an XML file).

Note that if the Eclipse formatter settings cannot be imported, the following error message shows up:

The input file is not a valid Eclipse XML profile.

migration_guide_error_message

Click thumbnail to view larger image.

Note that there may be some discrepancies between the code style settings in IntelliJ IDEA and Eclipse. For example, you cannot tell IntelliJ IDEA to put space after (but not before). If you want IntelliJ IDEA to use the Eclipse formatter, consider installing the Eclipse code formatter plugin.

EclipseIntelliJ IDEA
ActionShortcutActionShortcut
Format^ ⇧ FReformat code⌥⌘L or ⌥⌘L⌥⌘L or ⌥⌘L⇧⌘F or ⇧⌘F⌥ F8, ^ ⌥ F, ⌥F8, ⌃⌥F, ⌥F8 or ⌃⌥F

Running and reloading changes

Similarly to Eclipse, IntelliJ IDEA also has Run/Debug Configurations that you can access either form the main toolbar, or the main menu. Compare the related shorcuts:

EclipseIntelliJ IDEA
ActionShortcutActionShortcut
Run^ ⇧ F11Run⌃R or ⌃R⇧F10 or ⇧F10⇧⌘F11 or ⇧⌘F11^ F5, ⌃F5 or ⌃F5⇧ F10, ⇧F10 or ⇧F10
Debug^ F11Debug⌃D or ⌃D⇧F9 or ⇧F9⌘F11 or ⌘F11⌥ F5, ⌥F5 or ⌥F5⇧ F9, ⇧F9 or ⇧F9
--Make⌘F9 or ⌘F9⌘F9 or ⌘F9⌘B or ⌘BF7, F7 or F7^ F9, ⌃F9 or ⌃F9
--Update application⌘F10 or ⌘F10⌘F10 or ⌘F10⌘F10 or ⌘F10^ F10, ⌃F10 or ⌃F10^ F10, ⌃F10 or ⌃F10

As mentioned before, by default IntelliJ IDEA doesn't compile changed files automatically (unless you configure it to do so). That means the IDE doesn't reload changes automatically. To reload changed classes, call the Make action explicitly via ⌘F9 or ⌘F9⌘F9 or ⌘F9⌘B or ⌘BF7, F7 or F7^ F9, ⌃F9 or ⌃F9. If your application is running on a server, in addition to reloading you can use the Update application action via ⌘F10 or ⌘F10⌘F10 or ⌘F10⌘F10 or ⌘F10^ F10, ⌃F10 or ⌃F10^ F10, ⌃F10 or ⌃F10:

migration_guide_update_application

Debugging

The debuggers in Eclipse and IntelliJ IDEA are similar but use different shortcuts:

EclipseIntelliJ IDEA
ActionShortcutActionShortcut
Step intoF5Step intoF7 or F7F7 or F7F5 or F5F11, F8, F11, F8, F11 or F8F7, F7 or F7
--Smart step into⇧F7 or ⇧F7⇧F7 or ⇧F7⌥F5 or ⌥F5⇧ F7, ⇧F7 or ⇧F7⇧ F7, ⇧F7 or ⇧F7
Step overF6Step overF8 or F8F8 or F8F6 or F6F10, ⇧ F8, F10, ⇧F8, F10 or ⇧F8F8, F8 or F8
Step outF7Step out⇧F8 or ⇧F8⇧F8 or ⇧F8F7 or F7⇧ F11, ^ ⇧ F8, ⇧F11, ⌃⇧F8, ⇧F11 or ⌃⇧F8⇧ F8, ⇧F8 or ⇧F8
ResumeF8Resume⌥⌘R or ⌥⌘RF9 or F9F8 or F8F5, F5 or F5F9, F9 or F9
Toggle breakpoint^ ⇧ BToggle breakpoint⌘F8 or ⌘F8⌘F8 or ⌘F8⇧⌘B or ⇧⌘BF9, F9 or F9^ F8, ⌃F8 or ⌃F8
--Evaluate expression⌥F8 or ⌥F8⌥F8 or ⌥F8⌘U or ⌘U⌥ F8, ⌥F8 or ⌥F8⌥ F8, ⌥F8 or ⌥F8

Working with Application Servers (Tomcat/TomEE, JBoss EAP, Glassfish, WebLogic, WebSphere)

Deploying to application servers in IntelliJ IDEA is more or less similar to what you are probably used to in Eclipse. To deploy your application to a server:

  1. Configure your artifacts via Project Structure | Artifacts (done automatically for Maven and Gradle projects).
  2. Configure an application server via Settings | Application Servers.
  3. Create a run configuration, and then specify the artifacts to deploy and the server to deploy to.

You can always tell the IDE to build/rebuild your artifacts once the have been configured via Build | Build Artifacts.

Working with Build Tools (Maven/Gradle)

IntelliJ IDEA doesn't provide visual forms for editing Maven/Gradle configuration files. Once you've imported/created your Maven/Gradle project, you are free to edit its pom.xml/build.gradle files directly in the editor. Later, you can tell IntelliJ IDEA to synchronize the project model with the changed files on demand, or automatically import changes to the new build files. Any changes to the underlying build configuration will eventually need to be synced with the project model in IntelliJ IDEA.

For operations specific to Maven/Gradle, IntelliJ IDEA provides the Maven Project tool window and the Gradle tool window. Apart from your project structure, these tool windows provide a list of goals/tasks plus a toolbar with the relevant actions.

migration_guide_maven

If you want the IDE to synchronize your changes immediately:

  • For pom.xml, enable the corresponding options in Settings | Build, Execution, Deployment | Build Tools | Maven | Importing | Import Maven projects automatically
  • For build.gradle, enable the corresponding option in Settings | Build, Execution, Deployment | Build Tools | Gradle | Use auto-import.

For manual synchronization, use the corresponding action on the Maven/Gradle tool window toolbar: refresh.

Running goals/tasks

Use the Maven/Gradle tool window to run any project goal/task. When you do, IntelliJ IDEA creates the corresponding run configuration which you can reuse later to run the goal/task quickly.

It's worth mentioning that any goal/task can be attached to be run before a Run Configuration. This may be useful when your goal/task generates specific files needed by the application.

migration_guide_run_before

Both the Maven and Gradle tool windows provide the Run Task action. It runs a Maven/Gradle command similarly to how you'd run it using the console.

Configuring artifacts

If you have WAR artifacts configured in your pom.xml/build.gradle file, IntelliJ IDEA automatically configures the corresponding artifacts in Project Structure | Artifacts.

Note that when you compile your project or build an artifact, IntelliJ IDEA uses its own build process which may be faster, but is not guaranteed to be 100% accurate. If you notice inconsistent results when compiling your project with Make in IntelliJ IDEA, try using a Maven goal or a Gradle task instead.

Working with VCS (Git, Mercurial, Subversion, Perforce)

Configuring vcs roots

When you open a project located under a VCS root, IntelliJ IDEA automatically detects it and suggests adding this root to the project settings. To change version control-related project settings (or manually add a VCS root), go to Settings | Version Control:

migration_guide_vcs_settings

IntelliJ IDEA works perfectly with multi-repository projects. Just map your project directories to VCS, and the IDE will take care of the rest. For Git and Mercurial, the IDE will even offer you synchronized branch control, so that you can perform branch operations on multiple repositories simultaneously (for more details, see Git Branches in Multirooted Projects).

Editing vcs settings

Every VCS may require specific settings, for example, Path to Git executable, GitHub/Perforce credentials, etc.:

migration_guide_git_settings

Once you've configured the VCS settings, you'll see the Version Control tool window. You can invoke it any time by pressing ActivateChangesToolWindowActivateChangesToolWindowActivateChangesToolWindowActivateChangesToolWindowActivateChangesToolWindowActivateChangesToolWindowActivateChangesToolWindowActivateChangesToolWindowActivateChangesToolWindow.

Checking projects out

To check out a project from a VCS, click Checkout from Version Control on the Welcome Screen, or in the main VCS menu.

Working with local changes

The Local Changes tab of the Version Control tool window shows your local changes: both staged and unstaged. To simplify managing changes, all changes are organized into changelists. Any changes made to source files are automatically included into the active changelist. You can create new changelists, delete the existing ones (except for the Default changelist), and move files between changelists.

migration_guide_changes

To configure ignored files, go to Settings | Version Control, or use the corresponding button in the Version Control tool window.

migration_guide_ignored_files

Working with history

The Log tab of the Version Control tool window lets you see and search through the history of commits. You can sort and filter commits by the repository, branch, user, date, folder, or even a phrase in the description. You can find a particular commit, or just browse through the history and the branch tree:

migration_guide_log

Working with branches

IntelliJ IDEA lets you create, switch, merge, compare and delete branches. For these operations, either use Branches from the main or context VCS menu, or the VCS operations popup (you can invoke it by pressing ⌃V or ⌃V⌃V or ⌃V⌃V or ⌃V⌥ Back Quote, ⌥` or ⌥`⌥ Back Quote, ⌥` or ⌥`, or the widget on the right of the status bar:

migration_guide_vcs_popup

All VCS operations are available from the VCS main menu:

ActionShortcut
Version Control tool window ActivateChangesToolWindowActivateChangesToolWindowActivateChangesToolWindowActivateChangesToolWindowActivateChangesToolWindowActivateChangesToolWindowActivateChangesToolWindowActivateChangesToolWindowActivateChangesToolWindow
VCS operations popup ⌃V or ⌃V⌃V or ⌃V⌃V or ⌃V⌥ Back Quote, ⌥` or ⌥`⌥ Back Quote, ⌥` or ⌥`
Commit changes ⌘K or ⌘K⌘K or ⌘K^ K, ⌃K or ⌃K^ K, ⌃K or ⌃K
Update project ⌘T or ⌘T⌘T or ⌘T^ T, ⌃T or ⌃T^ T, ⌃T or ⌃T
Push commits ⇧⌘K or ⇧⌘K⇧⌘K or ⇧⌘K⇧⌘K or ⇧⌘K^ ⇧ K, ⌃⇧K or ⌃⇧K^ ⇧ K, ⌃⇧K or ⌃⇧K

Importing an Eclipse project to IntelliJ IDEA

Despite these differences in terms and the UI, you can import either an Eclipse workspace or a single Eclipse project. To do this, click Import Project on the Welcome Screen, or select File | New | Project from Existing Sources in the main menu.

If your project uses a build tool such as Maven or Gradle, we recommend choosing the corresponding option when prompted in the Import Project wizard, and selecting the associated build file (pom.xml or build.gradle):

migration_guide_import_project

If you'd like to import your existing run configurations from Eclipse, consider using this third-party plugin.

Exporting IntelliJ IDEA Project to Eclipse

Prerequisite

Eclipse integration plugin should be enabled.

You can export an IntelliJ IDEA project to Eclipse. Such export results in creating Eclipse project files (.project and .classpath) for each module file (*.iml) in the module directory that contains the content root. Another way to export an IntelliJ IDEA module to Eclipse project lays with converting such a module to an Eclipse-compatible format.

To export the currently open project to Eclipse, follow these steps:

  1. On the main menu, choose File | Export to Eclipse. Export to Eclipse dialog displays the list of modules, which were not converted and switched to use Eclipse format yet (the modules that have the IntelliJ IDEA module format .iml).
  2. Select the modules to be exported.
  3. Check the suggested options if necessary.
  4. Click OK.

To convert an IntelliJ IDEA module to Eclipse-compatible format, follow these steps:

  1. On the main menu, choose File | Project Structure, or press ⌘; or ⌘;⌘; or ⌘;⌘; or ⌘;^ ⇧ ⌥ S, ⌃⌥⇧S or ⌃⌥⇧S^ ⇧ ⌥ S, ⌃⌥⇧S or ⌃⌥⇧S.
  2. In the Project Structure Dialog dialog, select the module to be converted.
  3. Click Dependencies Tab tab.
  4. From the Dependencies storage format drop-down list, select Eclipse (.classpath).

As of this writing, migration from IntelliJ IDEA to Eclipse is subject to certain limitations:

  • IntelliJ IDEA modules with multiple content roots are not migrated.
  • External sources in Eclipse are not migrated.
  • Only Java modules are created automatically when importing. However, any module can be converted to Eclipse compatible format manually.
  • Default workspace JRE is not converted to/from Project SDK.

Export to eclipse dialog

ItemDescription
Modules to exportThis area shows the list of modules, which were not converted and switched to use Eclipse format yet (the modules that have the IntelliJ IDEA module format .iml).

The modules to be exported should be marked via a check box to the right.

Switch selected modules to Eclipse-competible formatIf this check box is selected, the modules selected on the Modules to export area, will be switched to Eclipse-compatible format.
Export non-module librariesIf this check box is selected, IntelliJ IDEA creates User Library configuration file for Eclipse (*.userlibraries), containing definitions of all external libraries, used in project

If this check box is not selected, the field Path to resulting .userlibraries is disabled.
Path to resulting .userlibrariesSpecify here the path to the generated *.userlibraries file. Note that this field is only available when the check box Export non-module libraries is selected.

Map of shortcuts

EclipseIntelliJ IDEA
Action Shortcut Action Shortcut
Code completion ^ Space Basic completion ⌃Space or ⌃Space⌃Space or ⌃Space⌃Space or ⌃Space^ Space, ⌃Space or ⌃Space⌥ Slash, ⌥/ or ⌥/
-- Smart completion ⌃⇧Space or ⌃⇧Space⌃⇧Space or ⌃⇧Space⌥⇧Space or ⌥⇧Space⇧ ⌥ Space, ⌥⇧Space or ⌥⇧Space^ ⇧ Space, ^ ⌥ Slash, ⌃⇧Space, ⌃⌥/, ⌃⇧Space or ⌃⌥/
-- Statement completion ⇧⌘⏎ or ⇧⌘⏎⇧⌘⏎ or ⇧⌘⏎⇧⌘⏎ or ⇧⌘⏎^ ⇧ Enter, ⌃⇧⏎ or ⌃⇧⏎^ ⇧ Enter, ⌃⇧⏎ or ⌃⇧⏎
Quick access ^ 3 Search everywhere Shift x 2
Maximize active view or editor ^ M Hide all tool windows ⇧⌘F12 or ⇧⌘F12⇧⌘F12 or ⇧⌘F12⇧⌘F12 or ⇧⌘F12^ ⇧ F12, ⌃⇧F12 or ⌃⇧F12^ ⇧ F12, ⌃⇧F12 or ⌃⇧F12
Open type ^ ⇧ T Navigate to class ⌘O or ⌘O⌘N or ⌘N⇧⌘T or ⇧⌘T^ Comma, ⌃, or ⌃,⇧ ⌥ G, ⌥⇧G or ⌥⇧G
Open resource ^ ⇧ R Navigate to file ⇧⌘O or ⇧⌘O⇧⌘N or ⇧⌘N⇧⌘R or ⇧⌘R^ ⇧ N, ⌃⇧N or ⌃⇧N^ X, Ctrl F, ⌃X, ⌃F or ⌃X, ⌃F
-- Navigate to symbol ⌥⌘O or ⌥⌘O⌥⇧⌘N or ⌥⇧⌘N⌥⌘O or ⌥⌘O^ ⇧ ⌥ N, ⌃⌥⇧N or ⌃⌥⇧N^ ⇧ ⌥ N, ⌃⌥⇧N or ⌃⌥⇧N
Next view ^ F7 --
-- Recent files ⌘E or ⌘E⌘E or ⌘E⌘E or ⌘E^ E, ⌃E or ⌃E
-- Switcher ⌃⇥, ⌃⇧⇥, ⌃⇥ or ⌃⇧⇥⌃⇥, ⌃⇧⇥, ⌃⇥ or ⌃⇧⇥⌃⇥, ⌃⇧⇥, ⌃⇥ or ⌃⇧⇥^ Tab, ^ ⇧ Tab, ⌃⇥, ⌃⇧⇥, ⌃⇥ or ⌃⇧⇥^ X, B, ⌃X, B or ⌃X, B
Quick outline ^ O File structure ⌘F12 or ⌘F12⌘F12 or ⌘F12⌘O or ⌘O^ F12, ⌃F12 or ⌃F12^ F12, ⌃F12 or ⌃F12
Move lines ⌥ Up/Down Move lines ⌥⇧↑ or ⌥⇧↑⌥⇧↑ or ⌥⇧↑⇧ ⌥ Up, ⌥⇧↑ or ⌥⇧↑⇧ ⌥ Up, ⌥⇧↑ or ⌥⇧↑/⌥⇧↓ or ⌥⇧↓⌥⇧↓ or ⌥⇧↓⇧ ⌥ Down, ⌥⇧↓ or ⌥⇧↓⇧ ⌥ Down, ⌥⇧↓ or ⌥⇧↓
Delete lines ^ D Delete lines ⌘⌫ or ⌘⌫⌘Y or ⌘Y⌘D or ⌘D^ ⇧ L, ⌃⇧L or ⌃⇧L
Quick fix ^ 1 Show intention action ⌥⏎ or ⌥⏎⌥⏎ or ⌥⏎⌘1 or ⌘1⌥ Enter, ⌥⏎ or ⌥⏎⌥ Enter, ⌥⏎ or ⌥⏎
Quick switch editor ^ E Switcher ⌃⇥, ⌃⇧⇥, ⌃⇥ or ⌃⇧⇥⌃⇥, ⌃⇧⇥, ⌃⇥ or ⌃⇧⇥⌃⇥, ⌃⇧⇥, ⌃⇥ or ⌃⇧⇥^ Tab, ^ ⇧ Tab, ⌃⇥, ⌃⇧⇥, ⌃⇥ or ⌃⇧⇥^ X, B, ⌃X, B or ⌃X, B
-- Recent files ⌘E or ⌘E⌘E or ⌘E⌘E or ⌘E^ E, ⌃E or ⌃E
Quick hierarchy ^ T Navigate to type hierarchy ⌃H or ⌃H⌃H or ⌃HF4 or F4⌥ H, ⌥H or ⌥H^ H, ⌃H or ⌃H
-- Navigate to method hierarchy ⇧⌘H or ⇧⌘H⇧⌘H or ⇧⌘H⇧⌘H or ⇧⌘H^ ⇧ H, ⌃⇧H or ⌃⇧H^ ⇧ H, ⌃⇧H or ⌃⇧H
-- Show UML popup ⌥⌘U or ⌥⌘U⌥⌘U or ⌥⌘U⌥⌘U or ⌥⌘U^ ⌥ U, ⌃⌥U or ⌃⌥U^ ⌥ U, ⌃⌥U or ⌃⌥U
Last edit location ^ Q Last edit location ⇧⌘⌫ or ⇧⌘⌫⇧⌘⌫ or ⇧⌘⌫⌃Q or ⌃Q^ ⇧ F2, ⌃⇧F2 or ⌃⇧F2^ ⇧ Backspace, ⌃⇧⌫ or ⌃⇧⌫
Next editor ^ F6 Select next tab ⇧⌘], ⌃→, ⇧⌘] or ⌃→⌃→ or ⌃→⌘F6, ⌥⌘→, ⌘F6 or ⌥⌘→⌥ Right, ⌥→ or ⌥→⌥ Right, ^ X, N, ⌥→, ⌃X, N, ⌥→ or ⌃X, N
Run ^ ⇧ F11 Run ⌃R or ⌃R⇧F10 or ⇧F10⇧⌘F11 or ⇧⌘F11^ F5, ⌃F5 or ⌃F5⇧ F10, ⇧F10 or ⇧F10
Debug ^ F11 Debug ⌃D or ⌃D⇧F9 or ⇧F9⌘F11 or ⌘F11⌥ F5, ⌥F5 or ⌥F5⇧ F9, ⇧F9 or ⇧F9
Correct indentation ^ I Auto-indent lines ⌃⌥I or ⌃⌥I⌥⌘I or ⌥⌘I⌘I or ⌘I^ ⌥ I, ⌃⌥I or ⌃⌥I^ ⌥ I, ^ ⌥ Q, ⌃⌥I, ⌃⌥Q, ⌃⌥I or ⌃⌥Q
Format ^ ⇧ F Reformat code ⌥⌘L or ⌥⌘L⌥⌘L or ⌥⌘L⇧⌘F or ⇧⌘F⌥ F8, ^ ⌥ F, ⌥F8, ⌃⌥F, ⌥F8 or ⌃⌥F
Surround with ^ ⌥ Z Surround with ⌥⌘T or ⌥⌘T⌥⌘T or ⌥⌘T⌥⌘Z or ⌥⌘Z^ ⌥ T, ⌃⌥T or ⌃⌥T^ ⌥ T, ⌃⌥T or ⌃⌥T
-- Surround with live template ⌥⌘J or ⌥⌘J⌥⌘J or ⌥⌘J⌥⌘J or ⌥⌘J^ ⌥ J, ⌃⌥J or ⌃⌥J^ ⌥ J, ⌃⌥J or ⌃⌥J
Open declaration F3 Navigate to declaration ⌘B, ⌘Button1 Click, Button2 Click, ⌘B, ⌘Button1 Click or Button2 Click⌘B, ⌘Button1 Click, Button2 Click, ⌘B, ⌘Button1 Click or Button2 ClickF3, ⌃Button1 Click, F3 or ⌃Button1 ClickF12, ⇧ F2, ^ B, ^ Button1 Click, Button2 Click, F12, ⇧F2, ⌃B, ⌃Button1 Click, Button2 Click, F12, ⇧F2, ⌃B, ⌃Button1 Click or Button2 Click^ ⌥ G, Escape, Period, ⌥ Period, ^ Button1 Click, ⌃⌥G, ⎋, ., ⌥., ⌃Button1 Click, ⌃⌥G, ⎋, ., ⌥. or ⌃Button1 Click
-- Quick definition ⌥Space, ⌘Y, ⌥Space or ⌘Y⇧⌘I or ⇧⌘I⌥Space, ⌘Y, ⌥Space or ⌘Y^ ⇧ I, ⌃⇧I or ⌃⇧I^ ⇧ I, ⌃⇧I or ⌃⇧I
Open type hierarchy F4 Navigate to type hierarchy ⌃H or ⌃H⌃H or ⌃HF4 or F4⌥ H, ⌥H or ⌥H^ H, ⌃H or ⌃H
-- Show UML popup ⌥⌘U or ⌥⌘U⌥⌘U or ⌥⌘U⌥⌘U or ⌥⌘U^ ⌥ U, ⌃⌥U or ⌃⌥U^ ⌥ U, ⌃⌥U or ⌃⌥U
References in workspace ^ ⇧ G Find usages ⌥F7 or ⌥F7⌥F7 or ⌥F7⇧⌘G or ⇧⌘G⇧ ⌥ F7, ⌥⇧F7 or ⌥⇧F7⌥ F7, ⇧ ⌥ S, ⌥F7, ⌥⇧S, ⌥F7 or ⌥⇧S
-- Show usages ⌥⌘F7 or ⌥⌘F7⌥⌘F7 or ⌥⌘F7⌥⌘F7 or ⌥⌘F7^ ⌥ F7, ⌃⌥F7 or ⌃⌥F7^ ⌥ F7, ⌃⌥F7 or ⌃⌥F7
-- Find usages settings ⌥⇧⌘F7 or ⌥⇧⌘F7⌥⇧⌘F7 or ⌥⇧⌘F7⌥⇧⌘F7 or ⌥⇧⌘F7^ ⇧ ⌥ F7, ⌃⌥⇧F7 or ⌃⌥⇧F7^ ⇧ ⌥ F7, ⌃⌥⇧F7 or ⌃⌥⇧F7
Open search dialog ^ H Find in path ⇧⌘F or ⇧⌘F⌃⇧F or ⌃⇧F⌃H or ⌃H^ ⇧ F, ⌃⇧F or ⌃⇧F^ ⇧ F, ⌃⇧F or ⌃⇧F
Occurrences in file ^ ⌥ U Highlight usages in file ⇧⌘F7 or ⇧⌘F7⇧⌘F7 or ⇧⌘F7^ ⇧ F7, ⌃⇧F7 or ⌃⇧F7^ ⇧ F7, ⌃⇧F7 or ⌃⇧F7
Copy lines ^ ⌥ Down Duplicate lines ⌘D or ⌘D⌘D or ⌘D^ D, ⌃D or ⌃D⌘ D, ⌘D or ⌘D
Extract local variable ^ ⌥ L Extract variable ⌥⌘V or ⌥⌘V⌥⌘V or ⌥⌘V⌥⌘L or ⌥⌘L^ ⌥ V, ⌃⌥V or ⌃⌥V^ ⌥ V, ⌃⌥V or ⌃⌥V
Assign to field ^ 2/^ F Extract field ⌥⌘F or ⌥⌘F⌥⌘F or ⌥⌘F⌥⌘F or ⌥⌘F^ ⌥ F, ⌃⌥F or ⌃⌥F
Show refactor quick menu ^ ⌥ T Refactor this ⌃T or ⌃T⌥⇧⌘T or ⌥⇧⌘T⌃T or ⌃T^ ⇧ ⌥ T, ⌃⌥⇧T or ⌃⌥⇧T^ ⇧ ⌥ T, ⌃⌥⇧T or ⌃⌥⇧T
Rename ^ ⌥ R Rename ⇧F6 or ⇧F6⇧F6 or ⇧F6⇧F6 or ⇧F6⇧ F6, ⇧F6 or ⇧F6⇧ F6, ⇧F6 or ⇧F6
Go to line ^ L Navigate to line ⌘L or ⌘L⌘G or ⌘G⌘L or ⌘L^ G, ⌃G or ⌃G⌥ G, ⌥G or ⌥G
Structured selection ⇧ ⌥ Up/⇧ ⌥ Down Select word at caret ⌥↑ or ⌥↑⌘W or ⌘W⌃⇧↑ or ⌃⇧↑^ W, ⌃W or ⌃W^ ⌥ W, ⌃⌥W or ⌃⌥W/⌥↓ or ⌥↓⇧⌘W or ⇧⌘W⌃⇧↓ or ⌃⇧↓^ ⇧ W, ⌃⇧W or ⌃⇧W^ ⇧ W, ⌃⇧W or ⌃⇧W
Find next ^ J Find next ⌘G or ⌘GF3, ⌃L, F3 or ⌃L⌘K or ⌘KF3, F3 or F3F3, ⌥ S, F3, ⌥S, F3 or ⌥S
Show in ^ ⌥ W Select in ⌥F1 or ⌥F1⌥F1 or ⌥F1⌥⌘W or ⌥⌘W⌥ F1, ⌥F1 or ⌥F1⌥ F1, ⌥F1 or ⌥F1
Back ^ [ Back ⌘[, ⌥⌘←, Button4 Click, ⌘[, ⌥⌘← or Button4 Click⌥⌘←, Button4 Click, ⌥⌘← or Button4 Click⌘[, Button4 Click, ⌘[ or Button4 Click^ ⌥ Left, Button4 Click, ⌃⌥←, Button4 Click, ⌃⌥← or Button4 Click^ ⌥ Left, Button4 Click, ⌃⌥←, Button4 Click, ⌃⌥← or Button4 Click
Forward ^ ] Forward ⌘], ⌥⌘→, Button5 Click, ⌘], ⌥⌘→ or Button5 Click⌥⌘→, Button5 Click, ⌥⌘→ or Button5 Click⌘], Button5 Click, ⌘] or Button5 Click^ ⌥ Right, Button5 Click, ⌃⌥→, Button5 Click, ⌃⌥→ or Button5 Click^ ⌥ Right, Button5 Click, ⌃⌥→, Button5 Click, ⌃⌥→ or Button5 Click