4 ms·
What problems can you solve with multi-cursors that you can’t with actual features like block selection?
by hk__2 13y ago
What problems can you solve with multi-cursors that you can’t with actual features like block selection?
- weaksauce 13y agoEditing the same thing in different places at the same time.
- prawks 13y agoIf it's the same thing, find & replace? Just playing devil's advocate, I've never come across a situation where I wanted multiple cursors that sed or macros couldn't do for me.
- weaksauce 13y agoI don't particularly need or use the feature over block selection or find and replace but it's similar to an interactive find and replace where you don't need to edit every instance of the found term. Some people love it.
- edanm 13y agoSimple (very common example): <pre> .some-css-rule { padding-left:50px; padding-right:50px; } </pre> Say I want to edit those two numbers. With multi-cursors, it's as simple as select one number, hitting a button that causes the other number to be selected, then writing the new value. Now, after I wrote it, I realize I forgot to put a space after the colon, and want to change the formatting. No problem - I just make the change to the first line, and the next line follows. Same as macros? Kind of. But let's say I make a mistake in the macro, e.g., I move the cursor left to the beggining of the line letter-by-letter instead of hitting "home", which is a killer for a macro since each line is a different length. (this is a contrived example a real vim'er will never do, but there are plenty of real examples of 'oops forgot about that' things when recording macros). Anyway, when I run my macro, suddenly things won't work, and then undoing and starting the re-record process takes time. But if I'm doing this with mulitple-cursors, I see right away, visually that something's wrong, and it's easy to fix - I just hit "home" after moving the cursor left. And note - this is a drop-dead-simple use case that happens 10's of times a day for any css programmer. Similarly, most programmers will run into cases where they have two similar if blocks one after another, or two similar "except" blocks, and so on. And that's not even going into lots of other, very powerful cases, like taking a function that gets a list of paramaters, and being able to easily manipulate these paramaters, e.g. given "foo(a, b, c, d, e)", I can easily multi-cursor all the commas, then copy all the params, then paste them after the func definition, hit enter, and I've got a list of all the params after the function definition. And this isn't hard, at all! I visually see everything I'm doing as I do it, and if something goes wrong, I fix it on the spot. I could ramble more about this, but I think I've either convinced you I'm crazy, or at least to try multi-cursors out :)
- chunkstuntman 13y agoIf you do this kind of editing daily, then executing the following commands would become second nature :s/50/60/g :s/:/: /g No need to touch the mouse or use macros. Many use-cases for multiple cursors are satisfied by the core functionality of vim, however they may not be immediately obvious.
- astine 13y agoTrivial counter-example: .some-css-rule { padding-left:50px; padding-right:50px; margin:50px; } Pretend you want to avoid changing the margin.
- chunkstuntman 13y ago:s/50/60/g<CR> @: or even just /50<CR>r6n. if there's any new feature I'd like to see in neovim it would be one key that will repeat an ex command like period does for normal/visual mode
- astine 13y agoYou're first example wont work. What you want is :s/50/60/<CR> @: And that still won't handle .some-css-rule { margin:50px; padding-left:50px; padding-right:50px; } The second example will work, for this, but not for the situation where you change your mind halfway through and decide you want 70px instead.
- eckzow 13y agoGlib response: :s/t:50/t:60/g More serious response: I think after many years of training ones brain to use the features available to it some of those features become second nature and subconscious. This is great for editing and it's the reason I immediately saw that you left me a really easy way to do it, but it can make seeing the value of new features more difficult.
- astine 13y ago
- deleted 13y ago[deleted]