Vim engine for JetBrains IDEs
IdeaVim supports many Vim features including normal/insert/visual modes, motion keys, deletion/changing, marks, registers, some Ex commands, Vim regexps, configuration via ~/.ideavimrc, macros, Vim plugins, etc.
See also:
- GitHub repository: documentation and contributing
- Issue tracker: feature requests and bug reports
Magnus Bakke
1 week agoI'm using this plugin in PyCharm 2024.3.2.1 right now. I've been using it for about 6 months. Except for the occasional
vi
on linux, this is my only exposure to anything Vim-related. My general experience of this plugin:Integration with IDE: It's easy to use and set up (set up optional). When I want some behavior, there's usually a simple change to make to .ideavimrc to make it work that way, assuming you either learn how to customize the .vrimc/.ideavimrc or know how to google. The plugin immediately assumes the new behavior after using the refresh button in the .ideavimrc editor. This applies the changes basically immediately (it can take up to 5 seconds) . When there is a conflict, the plugin asks if you want to use the IDE shortcut or the IdeaVim one. It's also very easy to change the shortcut conflict settings after the fact as it's the first and only thing you see in the Vim settings, which can be opened through the persistent icon in the IDE footer. There's not much more you could want from this plugin.
Performance: I have never experienced any sort of lag or slow startup with it. Any lag is imperceptible even with 8 separate large repos open in PyCharm on Windows alongside WebStorm, a DAW, and at least 50 Firefox tabs on a slow laptop that struggles. Besides me, it's the last thing to suffer any adverse effects from the IDE freaking out about something and crashing. Unless those crashes are because of IdeaVim (I wouldn't know as I would still not disable it).
This is an insanely stable plugin. In the ~6 months I've been using it, I've only had two tiny hickups I can remember: one time where my .ideavimrc changes didn't take effect before restarting the IDE, and some time some thing (which I can't remember) turned out to not be supported in IdeaVim. I'm not missing any behavior at the moment.
Available features: I can't remember why whatever wasn't support, wasn't support, or if there was a good reason or not. But whatever it was, I'm not missing it now. I don't know if anyone else is missing anything.
User Interface: The UI is very nice and accessible. There's not much to it, and there doesn't need to be, but the ease of access still exceeds the norm, especially Mypy*.
Documentation Quality: It's quick and straightforward to set up, and there's a changelog. Not much documentation needed, but whatever docs exist, I haven't read them.
As an introduction to Vim motions: I don't know if I'll ever use full Vim. But even though I was always quick with navigating text (and especially code) quickly, the Vim motions that this plugin enables in PyCharm has decimated the latency between my brain and the code change. It was painful for about a week, but if you're using it to learn and use motions like I was, just don't disable the plugin. Google how you do something in Vim before you think disabling it is the easy path. It doesn't take long to match and exceed your old speed, and once you get the intuitive sense and muscle memory, it's just so fun and enjoyable to use when there are no crashes, lag, or caveats.