A bunch of longstanding vim users I know now use kakoune because of the visual feedback they can get when doing something new with their editor.
For example, I’ve just used vim-multiple-cursors¹ to rename a parameter to a function, and I could have done that with “straight” vim too. However, for quick operations a simple `C-n`… to select the name, followed by `c` to change all at once just /felt/ nice.
I use multiple-cursors a fair bit; maybe 6-10 times a week on a full week of editing.
Sometimes it's not code, but data files I get from elsewhere that need some minor rearranging.
People have different needs.
Especially for people dealing with csv files, tabular data or digging through logfiles, Multi-Cursor and Multi-selection are concepts that are easy to grasp, and can help productivity immensely, with things that are not that easy using Nano or Notepad.
Simple cases in point : Use a regular expression to find and copy all lines with a particular pattern, or copy-paste a few csv lines with a couple of fields modified.
foo_bar -> fooBar
bar_baz -> barBaz
Sometimes even this doesn't cut it and have to use mighty Emacs macros. (I'm sure something similar exits for VIM):'<,'>s/_b/B/
work in this case?
So in this case :'<,'>s/_b/B/c
That let's you step through every change and if something's wrong you can press ESC and u to undo only the last change.
It depends on the actual problem of course, but multicursor edits also get unwieldy if you're editing more than 2 or 3 lines.
What about if the lines are beyond the visible screen?
Btw, I meant undo like global undo which will let you undo the last keypress for all of the cursors. In your case, you meant undo for a particular instance of change I guess.
Also, let's say there is different character after _
foo_bar -> fooBar
baz_car -> bazCar
some_thing -> someThing
Maybe you can do this with regex. but for a new user, he has to look it up. With multiple-cursors, you don't even have to think about it.However, you can use a macro.
I think the issue with Vim isn't so much that things can't be done in it but more that the discoverability of Vim features is pretty poor. eg by the time you've searched the web for a quick way to do a multiline edit, you could have just done it manually. GUI IDEs tend to be better for discoverability (generally speaking).
In Emacs, you can use multiple registers for storing code and data for this purpose
foo_bar -> fooBar()
baz_car -> bazCar()
some_thing -> someThing()
An even better example is doing the reverse fooBar() -> foo_bar
bazCar() -> baz_car
someThing() -> some_thing
You can put cursors at every line and then use subword movement to find the word boundary.> you still need some kind of regex to put the cursors at the right places, don't you?
I didn't say it replaces regex. You need regex just to place the cursors. you don't have to write complex regexp edit text (as shown in this example)
Don't get me wrong, I don't mind the feature, thing is I run in it so rarely so I don't get why it would be a major sellingpoint. For example this project and perhaps more notably sublime (an editor that I do enjoy quite a bit!)