5.9 KiB
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:
Setup
-
IdeaVim can be installed via
Settings | Plugins
. See detailed instructions. -
Use
Tools | Vim Emulator
to enable or disable emulation. -
Use
~/.ideavimrc
file as an analog of~/.vimrc
(details). XGD standard is supported as well. -
Shortcut conflicts can be resolved using:
- Linux & Windows:
File | Settings | Editor | Vim Emulation
&File | Settings | Keymap
, - macOS:
Preferences | Editor | Vim Emulation
&Preferences | Keymap
, - regular vim mappings in the
~/.ideavimrc
file.
- Linux & Windows:
Get Early Access
Would you like to try new features and fixes? Join the Early Access Program and receive EAP builds as updates!
Or subscribe to EAP updates manually:
- Open
Settings | Plugins
- Click the gear icon ⚙️, select
Manage Plugin Repositories
, and add the following url:https://plugins.jetbrains.com/plugins/eap/ideavim
See the changelog for the list of 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:
- @IdeaVim in Twitter
- Bug tracker
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
- vim-easymotion
- vim-surround
- vim-multiple-cursors
- vim-commentary
- argtextobj.vim
- vim-textobj-entire
- ReplaceWithRegister
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
Changes to the IDE
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
)
- Find IDE actions by name or keymap pattern (E.g.
:action {name}
- Execute an action named
NAME
- Execute an action named
For example, here \r
is mapped to the Reformat Code action:
:map \r :action ReformatCode<CR>
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.
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.