Guide · Open source
How to use IdeaVim: Vim keys inside JetBrains IDEs
Updated · written with AI from the project's own documentation and checked against our catalogue data
IdeaVim is a plugin that adds Vim-style modal editing to JetBrains IDEs such as IntelliJ IDEA, PyCharm and WebStorm. This guide covers installing it, turning it on, configuring it with an ideavimrc file, and mapping keys to IDE actions. It is written for developers who already know Vim, and for anyone deciding whether it fits their workflow.
Quick start
- 1Install the plugin. Open the plugin settings in your JetBrains IDE and install IdeaVim from the marketplace.
- 2Turn Vim on. Use Tools | Vim in the menu to enable Vim mode.
- 3Create an ideavimrc file. Create ~/.ideavimrc, or use $XDG_CONFIG_HOME/ideavim/ideavimrc.
- 4Add basic settings. Add set options like incsearch and nu, or source your ~/.vimrc.
- 5Map keys to IDE actions. Use map with <Action>(ActionId) to bind keys to IDE commands.
- 6Find action IDs. Run IdeaVim: track action IDs from Search everywhere, or use :actionlist.
- 7Resolve shortcut conflicts. Adjust Vim settings and the IDE keymap if an IDE shortcut clashes with a Vim key.
What do you need before installing IdeaVim?
You need a JetBrains IDE. The README lists IntelliJ IDEA, PyCharm, GoLand, CLion, PhpStorm, WebStorm, RubyMine, DataGrip, DataSpell, Rider, Cursive and Android Studio, plus other JetBrains IDEs.
The project is written in Kotlin and released under the MIT licence. The source does not list any other requirements.
How do you install IdeaVim in a JetBrains IDE?
The README says IdeaVim can be installed through the plugin settings. Open Settings | Plugins on Windows or Linux, or Preferences on macOS, and search for IdeaVim. The README links to JetBrains' managing plugins page for detailed steps.
No install commands are given in the source.
- Open the plugin settings in your IDE and install IdeaVim.
- Restart the IDE if it asks you to.
- Turn Vim on or off from the Tools menu, under Vim.
How do you turn on and configure IdeaVim with ideavimrc?
IdeaVim reads a ~/.ideavimrc file, which works like ~/.vimrc. The README says the XDG standard is also supported, so you can put settings in $XDG_CONFIG_HOME/ideavim/ideavimrc instead. You can also point IdeaVim at any file with the IDEA_VIM_CUSTOM_VIMRC environment variable.
To reuse your existing Vim setup, the README shows that you can add source ~/.vimrc to your ~/.ideavimrc. If you have overridden the user.home JVM option, IdeaVim looks for .ideavimrc in that home directory instead.
source ~/.vimrcHow do you map keys to IDE actions?
Use the <Action> keyword in a mapping, followed by the action ID in parentheses. The README gives these examples: map \r to ReformatCode, map <leader>d to Debug, and map \b to ToggleLineBreakpoint. Note that mappings to <Action> do not work with noremap.
To find action IDs, run the IdeaVim: track action IDs command from Search everywhere (double shift). You can also list actions with :actionlist followed by a pattern, such as :actionlist extract.
- Use :action {action_id} to run an action from the command line. Do not use it inside mappings.
- The README suggests ShowHoverInfo for Quick Documentation and QuickImplementations for Quick Definition.
:map <leader>d <Action>(Debug)What does a sample ideavimrc look like?
The README includes a full example. It sets a leader key to space, enables plugins such as surround and commentary, sets common options like incsearch and nu, and maps keys to IDE actions. The example also uses IdeaVim-specific settings such as ideajoin and idearefactormode. Copy only the parts you need and check each one, since plugins named in the example must be available to you.
- let mapleader=" " sets the leader key.
- set ideajoin and set idearefactormode=keep are IdeaVim-specific settings.
- map <S-Space> <Action>(GotoNextError) jumps to the next error.
let mapleader=" "
set incsearch
set nu
set ideajoin
map <leader>d <Action>(Debug)What Vim features does IdeaVim support?
The README lists normal, insert, visual and select modes; motion, deletion, change and window commands; key mappings; marks, macros, digraphs and registers; full Vim regular expressions for search and replace; and Vim web help. It also supports autocmd for events such as InsertEnter, BufWritePre and FileType.
The source says not all built-in functions and options are supported. Some set commands are listed on the project wiki. Check that a feature you rely on works before you depend on it.
What people use it for
- Editing code in IntelliJ IDEA or PyCharm with Vim motions and registers.
- Running IDE actions such as Debug or ToggleLineBreakpoint from a single key.
- Sharing one ideavimrc between IdeaVim and a regular Vim setup by sourcing ~/.vimrc.
- Recording and replaying macros across a project.
Frequently asked questions
Is IdeaVim free?
The source says IdeaVim is released under the MIT licence, which is an open-source licence. The source does not mention pricing, so check the JetBrains Marketplace listing for current terms.
Does IdeaVim work outside JetBrains IDEs?
No. The source says the plugin only runs in JetBrains IDEs. For other editors, the README mentions no alternative, but the comparison projects are Vim, Neovim and VSCodeVim.
Where is the ideavimrc file?
IdeaVim reads ~/.ideavimrc by default. You can also use $XDG_CONFIG_HOME/ideavim/ideavimrc, or set the IDEA_VIM_CUSTOM_VIMRC environment variable to a custom path.
How do I use my existing .vimrc with IdeaVim?
Add source ~/.vimrc to your ~/.ideavimrc, as the README shows. Some options may not apply, because not all Vim built-in functions and options are supported.
How do I find the ID of an IDE action?
Run the IdeaVim: track action IDs command from Search everywhere, which you open by pressing shift twice. You can also run :actionlist with a pattern to search for actions.
What if an IDE shortcut conflicts with a Vim key?
The README says to resolve it in the IDE's Vim settings or keymap settings, or by adding a regular Vim mapping in ~/.ideavimrc. The exact menu names differ between Linux, Windows and macOS.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
IdeaVim suits developers who already know Vim and want its keys inside a JetBrains IDE, especially if they want to map keys to IDE actions or share one config file. If you have never used Vim or need every Vim built-in function and option, pick standard IDE shortcuts or a full Vim or Neovim setup instead.
Install options & downloads