Hacker News new | ask | show | jobs
by rococode 2630 days ago
IntelliJ with the IdeaVim plugin is my goto editor nowadays. As others have said, I honestly don't find myself using the really fancy features of vim that often. What I do use frequently are basic motions together with yanking, deletions, word movement (w/e/b), marks, indents, centering (zz), page scrolls (ctrl+u/d), and using searches (f and /) to jump around in code quickly.

For those purposes, IdeaVim works just fine, and gives me all the little speed boosts of vim with the added bonus of (in my opinion) a much more robust coding environment. It even makes some functions better; for example, `gd` works super well and nearly instantly in IntelliJ since the definitions are supplied by the IDE's 'Go To Declaration' rather than some hacky vim plugin. Other editors have similarly sufficient vim plugins, e.g. VSCodeVim.

1 comments

Have they fixed the issues with where the cursor ends up after certain operations? It's been a couple of years since I've used it, so I can't give an explicit example, but there were multiple common operations where the cursor would end up in a different location afterwards than it does in vim. This was really difficult for me because I still used vim a lot for other things, and it felt like it was actively eroding my muscle memory to use two conflicting implementations.
I use IdeaVim at my day job and can confirm it's gotten better. There are still some rough edges, especially around handling movements like L, M, and H which don't always go where you expect them to. And some operations like undo don't play well with the vim commands such as undo.

And yes, I completely agree about switching between vim and ideavim for different languages, the experience is very different and the sight differences are very noticeable.

For the most part it does what I want it to do. As the other responder said, undo/redo can occasionally have some issues if you mix them with the IDE's version of those. I also have problems with the tag stack and jumplist (like ctrl+i/o) having serious latency problems so I stick to marks and `` as much as I can. The last thing I have problems with is when the IDE changes your code for you during an action - for example an auto-import when you type out a new class. The repeat action tends to mess up in those cases, trying to redo both your own typing and whatever the IDE did.

Again, I'm not a power user so to me these are the main issues and they're tolerable. For cursor movements I don't do anything too tricky, and all the movements I'm aware of do what I expect them to do.