Intelligent Vim engine for JetBrains IDEs

Explore the world of IDEs with Vim using a lightweight, open-source engine powered by JetBrains. IdeaVim is focused on IDEs, offering a smooth working experience, deep integration, and access to all of the power of an IDE right out of the box without having to give up your usual text-based interaction.

What is IdeaVim?

IdeaVim is a plugin for JetBrains IDEs that is actively developed and designed to allow developers to enjoy the power of an IDE and Vim-style editing simultaneously.

Smooth Vim Experience

IdeaVim gives you more than just binding arrow keys to hjkl. It supports a wide range of Vim commands and motions while retaining advanced Vim features like macros, marks, registers, EX commands, and even Vim Script.

The Power of IDEs

There is no need to install tons of plugins to start working and be more productive – you’re working in an IDE after all. You can enjoy Vim with JetBrains-quality refactorings, inspections, auto-completion, a debugger, and more.

Unique features

IdeaVim provides intelligent integration with IDEs, such as:

Access to IDE actions

You can track IDE actions and call them from IdeaVim to upgrade your Vim experience with smarter mappings and plugins.
Check out this page to learn how.

Use 7,000+ plugins from JetBrains Marketplace

With IdeaVim you can use a plugin from JetBrains Marketplace and execute the actions in your mappings just as if you were using a plugin for Vim.
Take a look at this tutorial, which uses CamelCase as an example.

Create your Vim plugins in Kotlin and Java

Thanks to the IntelliJ Platform, you can make your own IdeaVim-based plugins for IDEs using JVM languages.
There are even some ports of popular Vim plugins such as EasyMotion, vim-commentary, NERDTree, Surround, Vim-Sneak, Which-Key, and many more.

Deep IDE integration

IdeaVim works closely with IDE features. The join command (j) is syntax-aware and the put command (p) can insert missing imports and reformat inserted code. The “NERDTree” plugin works over the IDE's project tree.
Check out this page to see examples of the syntax-aware join command.

Vim Script Support

Easy Migration of Vim configurations in the ~/.ideavimrc file

IdeaVim provides a configuration file similar to a Vim configuration file. If you want, you can source your file and reuse your mappings in an IDE.

Vim options that you use in your workflow are also supported.

Use IDE actions in your configuration

Create custom shortcuts for IDE actions.

Vim Script Function Example

You can create your own custom Vim Script functions.

Create IDE-specific configurations

You can customize your working experience based on which IDE you are currently using.