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) 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)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
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!)
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)
:'<,'>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.