hlissner / evil-multiedit

Multiple cursors for evil-mode, based on iedit

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

How does this compare to evil-mc?

rieje opened this issue · comments

commented

How does evil-multedit compare to evil-mc now that the latter has matured? README says author uses both but doesn't expand on it. It would be useful to see what are the strengths of each so people interested in a multi-cursor tool can evalulate for themselves which package they might might prefer (or both, if desired).

Of course this is opinionated, but having some context is much better than having no context and allows future development of both packages (or the creation of a new one) to be more fruitful so features can be improved and not reinvented.

Sorry for the late reply! I'd like to make clear that this is personal preference, so your mileage may vary, but put simply, evil-multiedit is better for quick edits on homogenious regions of text and evil-mc is better for complex edits on heterogenious text.

Now, I am absolutely certain evil-mc can fill either role, with some effort, but its premise is to mirror commands across many cursors, even motions. Extra steps are needed to get cursors into their desired starting positions and extra care taken to ensure cursors end up exactly where you want them to be after each and every operation. On top of that, undo/redo is buggy in evil-mc, adding cognitive load to the mere act of backtracking in case of a mistake. In a sentence, evil-mc is complex and powerful. Complexity you need only rarely, but when you do, and plan for it, evil-mc is indispensible.

With evil-multiedit, instead of mirroring commands across cursors, you're mirroring text across highlighted regions. Think of it as interactive substitution with the power of modal editing. Once you've placed your regions, no additional mental bookkeeping is necessary, as it was when managing several autonomous cursors. You're managing only one cursor and editing one region (which one is up to you), and the propagated edits are restricted to those regions. This reassures me that my edits don't find themselves where I don't want them to. However, evil-multiedit is useless when the highlighted regions are heterogenious.

These two, combined with vim/evil substitution and visual-block editing make for a very complete editing package altogether.

I hope that has answered your question! I'm closing this issue simply because it isn't a bug, but feel free to continue using it. I'll eventually work this explanation into the project's readme.

Also, if it helps, you can find my keybinding scheme for the two plugins described at the bottom of this project's readme.