This is my current .ideavimrc.

Shortcut conflicts

IntelliJ IDEA shortcuts and Vim shortcuts conflict in some places. I prefer to keep the IDEA shortcuts most of the time, except for the following:

For curly bracket languages, [{ and ]} can be used as Vim-native alternative to IntelliJ’s Ctrl-[ and Ctrl-].

Remapped actions

I bound some frequent actions to new Vim shortcuts, because the IntelliJ native ones were cumbersome or collided with existing Vim shortcuts:

See :actionlist for all the available actions.

Jumping around

The behaviour of the standard Ctrl-O and Ctrl-I actions feels a bit off in IdeaVim, in a way I can’t quite pinpoint. It’s not IntelliJ’s default Back and Forward behaviour, but it isn’t Vim’s, either. I think emulating Vim’s behavior faithfully would be complicated: the Vim jumplist always works in the current window, while IntelliJ will jump to an already open tab if you follow a definition.

So I decided to fully adopt IntelliJ’s behaviour for recent jumps and changes, but using Vim’s shortcuts:

IntelliJ bindings that work fine

Menu-based IntelliJ bindings

Rather than use the function keys, or some combinations that are hand-stretching, or hidden by my Vim mappings, I sometimes go through the menu shortcuts:

Vimmy things that work

Here’s the full list of supported commands.

Vimmy things that are missing

Configuring true Vim as an external tool

gvim can also be configured as an external tool. Pass the $FilePath$ argument and check Synchronize files after execution.

You can assign an IDEA shortcut (perhaps Alt-X?) to it in the Keymap.