1
0
mirror of https://github.com/chylex/IntelliJ-IdeaVim.git synced 2025-03-10 03:32:19 +01:00
IntelliJ platform plugin for Vim emulation. http://plugins.jetbrains.com/plugin/164
Go to file
2019-04-12 19:03:09 +03:00
doc Added iskeyword option to the list of supported set commands 2017-11-03 03:59:13 +03:00
gradle/wrapper Update gradle wrapper to 5.2.1 version 2019-02-21 15:31:14 +03:00
resources Update readme: add information about commentary extension 2019-03-29 11:25:19 +03:00
src/com/maddyhome/idea/vim Test fixing 2019-04-12 19:03:09 +03:00
test/org/jetbrains/plugins/ideavim Test fixing 2019-04-12 19:03:09 +03:00
.editorconfig Get indent from PsiFile so formatting on shift is consistent 2018-11-02 12:54:55 -04:00
.gitignore Update .gitignore 2019-02-22 14:10:01 +03:00
AUTHORS.md Add Andrew Potter to contributors list 2019-04-12 18:33:23 +03:00
build.gradle Updated Kotlin to 1.3 due to compatibility IntelliJ 2019.1 2019-01-28 22:56:14 +03:00
CHANGES.md Add Andrew Potter to contributors list 2019-04-12 18:33:23 +03:00
CODE_OF_CONDUCT.md Add Code of Conduct to project 2019-04-10 15:59:48 +03:00
CONTRIBUTING.md Update copyright formatting 2019-02-25 19:26:34 +03:00
gradle.properties Updated Kotlin to 1.3 due to compatibility IntelliJ 2019.1 2019-01-28 22:56:14 +03:00
gradlew Update gradle wrapper to 5.2.1 version 2019-02-21 15:31:14 +03:00
gradlew.bat Update gradle wrapper to 5.2.1 version 2019-02-21 15:31:14 +03:00
index.txt VIM-404 Fixed 'O' at the first line 2013-03-26 15:51:15 +04:00
LICENSE.txt Moved license/COPYING to LICENSE.txt 2012-11-30 17:09:42 +04:00
README.md Remove information about unreleased extenstion 2019-04-04 17:10:32 +03:00
settings.gradle Update gradle wrapper to 5.2.1 version 2019-02-21 15:31:14 +03:00

IdeaVim

Stable
EAP

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 by "Preferences | Editor | Vim Emulation", "Preferences | Keymap" on macOS. They can also be resolved by key mapping commands in your ~/.ideavimrc file.

Get an Early Access

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

Add https://plugins.jetbrains.com/plugins/eap/ideavim to:
IJ versions 2018.3 and newer: "Settings | Plugins | Cog icon | Manage Plugin Repositories"
IJ versions 2018.2 and older: "Settings | Plugins | Browse Repositories | Manage Repositories"

See the changelog for the list of hot unreleased features.

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

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

Emulated Vim plugins:

  • vim-surround
  • vim-multiple-cursors

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 using 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.

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 behaviour 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 the insert mode with <Esc> not working. You should use <C-c> or <C-[> instead. In some dialog windows the normal mode is on by default. The usage of the Vim emulator in dialog windows is an area for improvements.

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 pattern
  • :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.