Code Monkey home page Code Monkey logo

ideavim's Introduction

icon

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.

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 icon in the status bar | EAP | Get Early Access...

Or subscribe to EAP updates manually:

  1. Open Settings | Plugins
  2. 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:

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
  • 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

See doc/emulated-plugins.md

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)
  • :action {name}
    • Execute an action named NAME

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.

ideavim's People

Contributors

alexpl292 avatar vlasovskikh avatar karavaevitalii avatar citizenmatt avatar dezgeg avatar vasalf avatar dhleong avatar olegs avatar fan-tom avatar zolotov avatar ayzenquwe avatar jorgengranseth avatar sumoooru2 avatar igrekster avatar angelbot avatar jpalus avatar rasendubi avatar vvalter avatar agrison avatar danielemegna avatar ikenox avatar smartbomb avatar poxu avatar gecko655 avatar cypok avatar khromalabs avatar hajdamak avatar constpetrov avatar selesse avatar agriesbaum avatar

Watchers

Pavel Pozdeev avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.