3 ms·
I posted my solution on StackOverflow[1], but I like my way better than the top post: Here's how I'd do it (with the cursor on the first line):
by SeoxyS 14y ago
I posted my solution on StackOverflow[1], but I like my way better than the top post:
Here's how I'd do it (with the cursor on the first line):
qama:5y$'a$p:5dd'ajq3@a
You need to know two things:
- The line number on which the first line of the second
group starts (5 in my case), and the number of lines
in each group (3 in my example).
Here's what's going on:
`qa` records everything up to the next `q`
into a "buffer" in `a`.
`ma` creates a mark on the current line.
`:5` goes to the next group.
`y$` yanks the rest of the line.
`'a` returns to the mark, set earlier.
`$p` pastes at the end of the line.
`:5` returns to the second group's first line.
`dd` deletes it.
`'a` returns to the mark.
`jq` goes down one line, and stops recording.
`3@a` repeats the action for each line (3 in my case)
[1]: http://stackoverflow.com/questions/10760326/merge-multiple-lines-in-vim/10762846#10762846 http://stackoverflow.com/questions/10760326/merge-multiple-l...
- mdonahoe 14y agoMacros and block-select are my favorite infrequently used parts of Vim. Every time I have a need for either, I grin.
- ibotty 14y agoyes. and macros are so easy to use. i usually start a macro before i really know how i am supposed to do it. it's just a "do it for this one occurence" but prepended by qa and ended by q. well i will have to move the cursor to the right spot again. but that is good habit anyway.