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.
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.
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.
IdeaVim provides intelligent integration with IDEs, such as:
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.
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.
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.
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.
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.
Create custom shortcuts for IDE actions.
You can create your own custom Vim Script functions.
You can customize your working experience based on which IDE you are currently using.