ideavim

Vim emulation plug-in for IDEs based on the IntelliJ platform.

IdeaVim

IdeaVim is a Vim emulation plugin for IDEs based on the IntelliJ Platform.
IdeaVim can be used with IntelliJ IDEA, PyCharm, CLion, PhpStorm, WebStorm,
RubyMine, AppCode, DataGrip, GoLand, Rider, Cursive, and Android Studio.

Resources:

Installation

Use the IDE's plugin manager to install the latest version of the plugin.
Start the IDE normally and enable the Vim emulation using "Tools, Vim
Emulator" menu item. At this point you must use Vim keystrokes in all editors.

If you wish to disable the plugin, select the "Tools, Vim Emulator" menu so
it is unchecked. At this point your IDE will work with its regular keyboard
shortcuts.

Keyboard shortcut conflicts between the Vim emulation and the IDE can be
resolved via "File, Settings, Editor, Vim Emulation", "File, Settings, Keymap" on Linux & Windows, and via "Preferences, Editor, Vim Emulation",
"Preferences, Keymap" on macOS. They can also be resolved by key-mapping
commands in your ~/.ideavimrc file.

Get Early Access

Would you like to try new features and fixes? Join the Early Access Program and
receive EAP builds as updates!

  1. Click the IdeaVim icon in the status bar, EAP, Get Early Access...

Or subscribe to EAP updates manually:

  1. Open Settings, Plugins
  2. Click the gear icon :gear:, select Manage Plugin Repositories, and add the following url:
    https://plugins.jetbrains.com/plugins/eap/ideavim

See the changelog for the list of hot unreleased features.

It is important to distinguish EAP builds from traditional pre-release software.
Please note that the quality of EAP versions may at times be way below even
usual beta standards.

You can always leave your feedback with:

Summary of Supported Vim Features

Supported:

  • Motion keys
  • Deletion/changing
  • Insert mode commands
  • Marks
  • Registers
  • Undo/redo
  • Visual mode commands
  • Some Ex commands
  • Some :set options
  • Full Vim regexps for search and search/replace
  • Key mappings
  • Macros
  • Digraphs
  • Command line and search history
  • Window commands
  • Vim web help
  • Select mode

Emulated Vim plugins:

  • vim-easymotion
  • vim-surround
  • vim-multiple-cursors
  • vim-commentary
  • argtextobj.vim [To Be Released]

Not supported (yet):

  • Jump lists
  • Various less-used commands

See also:

Files

  • ~/.ideavimrc
    • Your IdeaVim-specific Vim initialization commands

You can read your ~/.vimrc file from ~/.ideavimrc with this command:

source ~/.vimrc

Note, that IdeaVim currently parses ~/.ideavimrc file via simple pattern matching.
See VIM-669 for proper parsing
of VimL files.

Also note that if you have overridden the user.home JVM option, this
will affect where IdeaVim looks for your .ideavimrc file. For example, if you
have -Duser.home=/my/alternate/home then IdeaVim will source
/my/alternate/home/.ideavimrc instead of ~/.ideavimrc.

Alternatively, you can set up initialization commands using XDG standard.
Put your settings to $XDG_CONFIG_HOME$/ideavim/ideavimrc file.

Emulated Vim Plugins

IdeaVim extensions emulate some plugins of the original Vim. In order to use
IdeaVim extensions, you have to enable them via this command in your ~/.ideavimrc:

set <extension-name>

Available extensions:

Changes to the IDE

Undo/Redo

The IdeaVim plugin uses the undo/redo functionality of the IntelliJ Platform,
so the behavior of the u and <C-R> commands may differ from the original
Vim. Vim compatibility of undo/redo may be improved in future releases.

See also unresolved undo issues.

Escape

Using <Esc> in dialog windows remains problematic. For most dialog windows,
the Vim emulator is put into insert mode with <Esc> not working. You
should use <C-c> or <C-[> instead. In some dialog windows, the normal mode is
switched by default. The usage of the Vim emulator in dialog windows is an area for
improvement.

See also unresolved escape issues.

Executing IDE Actions

IdeaVim adds two commands for listing and executing arbitrary IDE actions as
Ex commands or via :map command mappings:

  • :actionlist [pattern]
    • Find IDE actions by name or keymap pattern (E.g. :actionlist extract, :actionlist <C-D)
  • :action {name}
    • Execute an action named NAME

For example, here \r is mapped to the Reformat Code action:

:map \r :action ReformatCode<CR>

Contributing

See CONTRIBUTING.md

Authors

See AUTHORS.md
for a list of authors and contributors.

License

IdeaVim is licensed under the terms of the GNU Public License version 2
or any later version.

主要指标

概览
名称与所有者JetBrains/ideavim
主编程语言Kotlin
编程语言Java (语言数: 4)
平台
许可证MIT License
所有者活动
创建于2011-03-09 15:22:27
推送于2025-05-20 09:01:53
最后一次提交2025-05-14 15:11:41
发布数212
最新版本名称workflow-close-youtrack (发布于 )
第一版名称0.23.93 (发布于 )
用户参与
星数9.7k
关注者数344
派生数782
提交数8.5k
已启用问题?
问题数0
打开的问题数0
拉请求数577
打开的拉请求数3
关闭的拉请求数232
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?