I hadn't seen a reply to this, so I thought I'd take a crack at it

On 05/16/12 06:31, Fredrik Andersson wrote:
> I have a list of string values that I would like to autoformat but vim
> breaks the strings if there is a space inside of it.
> 
> Can this be fixed somehow?
> 
> example
> 
>     "sdasda", "asdasdasd", "afasfasf", "asdasda asdasd", "asdasd"
> 
> becomes
> 
>     "sdasda", "asdasdasd", "afasfasf", "asdasda
>     asdasd", "asdasd"
> 
> but I want
> 
>     "sdasda", "asdasdasd", "afasfasf",
>     "asdasda asdasd", "asdasd"

While not automatic, you can use the following:

%s/\%(^\%("[^"]*"\|[^"]\)*\)\@<=\%("[^"]*\|[^"]\+\)\%>50c/\r&

(where "50" is where you want things to wrap; this could be
generated dynamically with an :exec and &tw to pull in the current
value of text-width)

which should come fairly close.  Unfortunately, you have to just
repeat its execution until it fails (rather than use the "/g" flag).

> Extra bonus: It would be nice for it to support different string
> formatings (Python, ". ' and """)

For single-vs-double quotes, I'd just hack together an alternate
version that swaps the desired character in.  For the triple-quote
strings that Python allows, it becomes a whole other ball of wax.

-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

Reply via email to