5 ms·
The most awesome feature of SublimeText for me is multiple-cursor editing (Ctrl-D on a word). It only bothers me when I can't skip next occurrences easily (It's
by njoh 14y ago
The most awesome feature of SublimeText for me is multiple-cursor editing (Ctrl-D on a word). It only bothers me when I can't skip next occurrences easily (It's possible, but it's hard)
It surprises me how users of other major editors don't use multiple cursors in their day to day editing tasks. It'd be awesome if subvim included the best solution vim community has to offer in this regard.
- m4rkuskk 14y agoPressing Ctrl-K,D to skip an entry is quite cumbersome, especially if you missed an entry and there is no way of undoing the last selection.
- JeanMertz 14y agoCtrl/Cmd-U is a "soft undo" that undoes your last selection. I agree that Cmd-K,D isn't ideal, but that, combined with Cmd-U works perfectly.
- chr1 14y agoCloud9 have a nice solution for that, ctrl-alt-left/right to select next previous and same with shift to not keep last added selection. This way you can even skip some words in the middle. I've tried to make a plugin for this, but sublime doesn't keep the order in which ranges were added.
- efnx 14y agoVim has block editing mode (ctrl v - select, shift i, write text, esc) and the ability to record macros. With those two features you can do everything multiple cursors does and more!
- weaksauce 14y agoI love vim but I don't think that block editing mode does what they want to do quite as well. Do you have an example where they excluded a line or lines from block editing? an example: class="item" class="item" class="item" class="item" st2 would be able to select the second and fourth line item and be able to change those to "item odd" without touching the first and the third ones. similarly they could do the same and add even to the other two. class="item" class="item odd" class="item" class="item odd" this blog post shows it in action: http://www.sublimetext.com/blog/articles/sublime-text-2-0-released http://www.sublimetext.com/blog/articles/sublime-text-2-0-re...
- Keyneston 14y agoI'm probably being very defensive but I use macros for this. qa$i odd^[jjq and then '4@a' to run it on all the lines. In a simple case like this is it a bit more complicated than something like multiword editing but I've used this technique in cases that are far more complex then what from my understanding, multiline editing can handle. For example I turned a spreadsheet of data into a complicated dhcpd.conf file using a couple macros.
- njoh 14y agoFor more complex tasks like data format conversion, It's probably easier to write some small script and refine a couple of times to resolve possible conversion errors.
- weaksauce 14y agoOh I agree that macros are a daily use thing for me and I haven't used sublimetext more than a handful of times; I was merely playing devils advocate to see if vim had an interesting feature I was unaware of that I could use in my day to day editing.
- translocation 14y agoI might not fully understand the use cases of multiple cursors, but if you were trying to accomplish the same thing (change every other occurrence of "item" to "item odd") in vim, you could do it with 'n' and '.' /item (search for 'item') cwitem odd^C (replace with the new text) nn.nn.nn. (next occurrence, next occurrence, repeat last command)
- njoh 14y agoFor the mentioned task, I prefer to hold control, double click on "item" on lines 1 and 3, press right, and type " odd". Then pressing up, left and type " even".
- efnx 14y agoThis would be easily done by recording a macro and replaying it numlines/2-1 times. Possibly if starting on the first line: q,a,j,$,i, odd,esc,j,q,4@a qa // start recording into 'a' register j // move down $ // move last char on line i // insert mode odd // esc // back to command mode j // move down 4@a // replay macro 4 times (if there are 8 more lines)
- bosie 14y agohave a look at https://github.com/paradigm/vim-multicursor https://github.com/paradigm/vim-multicursor
- ineedtosleep 14y agoJust tried C-D on my rarely used Sublime Text, but I'm not sure if I'd personally prefer that over something like `:%s/one/two/gc`.
- njoh 14y agoI rarely use global find and replace nowadays (just for complex regex replaces). I hold Ctrl-D until all occurrences are selected and type the replacement string (assuming occurrences are low in quantity, which they usually are in most cases).
- weaksauce 14y agovisual selection replacement is good too. :'<,'>s/this/to that/g I think vim does that automatically when you have a selection active and hit :
- caioariede 14y agoNote that this will replace over the entirely lines even if it's a blockwise selection. So you might consider using :'<,'>s/\%Vthis/to that/g
- weaksauce 14y agoIt might be a setting or something but it definitely doesn't do that on my machine or the linux machine I have in the cloud. this ipsum dolor sit amet this ipsum dolor sit amet this ipsum dolor sit amet this ipsum dolor sit amet this ipsum dolor sit amet select the middle 3 lines and do what I said will give you: this ipsum dolor sit amet to that ipsum dolor sit amet to that ipsum dolor sit amet to that ipsum dolor sit amet this ipsum dolor sit amet
- Already__Taken 14y agoYou know crt + H (global find and replace) takes what's highlighted and uses the last thing you looked for it nothing is highlighted.
- daGrevis 14y agoMultiple-cursors are just a syntactic sugar for macros. s/syntactic/visual/
- roryokane 14y agoMultiple cursors simulate not just macros, but also setting lots of marks and iterating the macros through them. It’s relatively easy to write an equivalent macro if you’re just placing a cursor every three lines or at every occurence of some string; you can have the macro move three lines down when it’s done, or search for the next occurence of some regex. But if you’re actually clicking on places in the code that only a human can identify need changing, then it’s much harder to write an equivalent macro.
- shared4you 14y agoNo editor wars intended, but for someone interested: multiple cursors for Emacs: https://github.com/emacsmirror/multiple-cursors https://github.com/emacsmirror/multiple-cursors Do watch the video linked to on this page!
- maxmcd 14y agoCommand + K skips the most recently highlighted occurrence. Usually works for me.
- farslan 14y agoOP here. There are some plugins but I didn't research it. But here is one that I think do it (and if it's good I'll integrate it): https://github.com/paradigm/vim-multicursor https://github.com/paradigm/vim-multicursor
- jQueryIsAwesome 14y agoIs awesome but it needs some work, it would be _really_ nice if it were syntax aware, so if you start Ctrl+D in a variable it should only select where is being used as a variable and not other things (regex, strings, etc) or at least a boolean option to enable this behavior.
- h2s 14y agoI'm a Vim user and this is the only Sublime feature that I think I'd like to see in a future version of core Vim. Another comment called it "syntactic sugar for macros"[1] and that's true. Multicursor functionality allows you to avoid repetition in so many cases that it's worthy of inclusion as a feature in its own right. [1] https://news.ycombinator.com/item?id=5504507 https://news.ycombinator.com/item?id=5504507
- eddieplan9 14y agoI think what we already have in vim is even better: just use dot (.) to repeat the last action. So you make some edits in your first cursor position, move to the next cursor position and press dot to repeat the edit.
- m_mueller 14y agoNo offence, but that's the typical kind of comment coming from someone who's never actually tried multicursor functionality. The thing about multicursor is that it's seamlessly integrated not only with editor commands, but also with commands that create multicursors. Examples: - Cmd-Shift-L creates a cursor at the end of every line of the selected area. - Find all, integrated with Regex, creates multicursors on every match. - Once you get multicursors, you can still add some manually by holding down Cmd and double clicking at a cursor position. After you get multicursors, you can then move them around using standard editor commands - that's the real power of this construct, since I'm able to match something much simpler than I actually want to edit (for example end/beginning of line), move to the meat, edit.
- Derbasti 14y agoI would not say it's essential, but multiple cursors is certainly one of the features I use quite frequently in Emacs. In many occasions, it is more useful than plain search and replace, though even that is kind of super charged in Emacs to bein with.