kankaristo / atom-multi-cursor-plus

Improved multi-cursor functionality for Atom: https://atom.io/packages/multi-cursor-plus
MIT License
20 stars 1 forks source link

add support for vim-mode #3

Open wolftune opened 9 years ago

wolftune commented 9 years ago

not sure what's involved, if this just need different suggested keybinding options or what, but it would be ideal to have this plugin working fully with all the vim stuff in vim-mode.

kankaristo commented 9 years ago

This package is currently broken because of #2, but after that's fixed, I could take a look at this.

I haven't really used vim-mode (although I use Vim every now and then), but looking at its keymap, this should be as simple as adding new keybindings. Do you have any suggestions for default vim-mode keybindings, which wouldn't conflict with anything else?

wolftune commented 9 years ago

Actually, due to some updates in progress for the multi-cursor package, I no longer feel the need any more for this package to exist. I'm a big fan of reducing fragmentation, so since this is broken, I'd actually recommend you deprecate / delete multi-cursor-plus and instead add PRs to the multi-cursor package if there are things you want that are missing there. Since moving a cursor to a place and then making a new one which is itself movable is like marking, the only thing your plus package offers distinctly (but is broken) is the ability to go back and delete a cursor, which I can live without.

For reference, the ideal (which neither package supports yet) is to have any arbitrary movement work for either the last cursor or any cursor. In other words, in vim 6w moves ahead 6 words. I want to be able to use that and any other movement command to place a single cursor before adding another. So, I think the ideal is somehow to have modifier or leader key or something to just specify whether a movement should be all cursors or just the last one. But I'd prefer this function added to the multi-cursor package now.

Cheers

kankaristo commented 9 years ago

All that multi-cursor-plus does is move only the last cursor instead of all cursors, which is what Atom does by default.

When you "mark", it creates a new cursor, which can be moved and the old one stays in place. If there's already a cursor there, it combines the two cursors instead of creating a third cursor.

Atom supports adding a new cursor above or below the current row. Last time I looked at multi-cursor, all it added to Atom's default functionality was the ability to create a new cursor one character to the left or right, instead of anywhere you want.

To me, the ability to be able to remove an existing cursor is very important, so I probably won't unpublish this package unless multi-cursor adds support for this. I'm all for combining the two packages, but I don't want to lose this functionality from my workflow.

The ideal situation would be to have this functionality in Atom's core, because multi-cursor-plus is a bit of a hack (which is why it broke).

wolftune commented 9 years ago

I thought you were saying that deleting a cursor was broken. Anyway, here's the point:

All that multi-cursor-plus does is move only the last cursor instead of all cursors

multi-cursor (that's not the built-in, it's another community package) already offers that.

So the only thing you have different now is the particular workflow and the feature to remove existing cursors. So, I would suggest adding that feature to the multi-cursor package, and then we're all combined!

kankaristo commented 9 years ago

Currently, this entire package is broken, because adding a cursor doesn't work.

I haven't looked at multi-cursor after I made this package. I'll take another look at it when I find time, and see if it would be better to add the ability of removing a cursor, instead of fixing this package.

Despite the name, this package is not based on multi-cursor in any way, so I'll have to take a look at the code to see if removing a cursor is easy to add.