Wednesday, January 27, 2016

Re: "Exploding" a paragraph into individual lines

On 2016-01-27 09:49, Chris Lott wrote:
> I'd like to take a paragraph like the following:
>
> This is a paragraph. Wow! What do I do now?
>
> And break it into individual lines, ala:
>
> This is a paragraph.
> Wow!
> What do I do now?
>
> StackExchange revealed this regex that seems to work well matching
> the proper lines: [.!?][])"']*\($\|[ ]\)
>
> So I can do this:
> :%s/[.!?][])"']*\($\|[ ]\)/XXX\r\r/g
>
> But obviously need something where XXX is!

There are two possibilities: capture the stuff you want to keep
with "\(...\)" and put it where the "XXX" is with "\1":

:%s/\([.!?][])"']*\)\($\|[ ]\)/\1\r\r/g

or, simply start your replacement at that location using "\zs"

:%s/[.!?][])"']*\zs\($\|[ ]\)/\r\r/g

You might also want to capture multiple spaces, changing it from

\($\|[ ]\)

to

\($\|[ ]\+\)

(the brackets around the single space are optional, but do help with
readability; I'd have just used

\($\| \+\)

for one or more spaces)

-tim




--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments: