Now, what if I want to do the reverse, tranforming this:

a.anything {
  color:#eee;
  display:block;
  width:300px;
}

onto this:

a.anything {color:#eee;display:block;width:300px;}

???

All the best,
Leandro.

On 21 fev, 15:04, Tim Chase <v...@tim.thechases.com> wrote:
> > I guess the title is pretty much self-explanatory.
> > But I'll give an example of what I want. Assume I have this line:
>
> > a.anything {color:#eee;display:block;width:300px;}
>
> > So, I want to split this above line into this:
>
> > a.anything {
> >   color:#eee;
> >   display:block;
> >   width:300px;
>
> > }
>
> > So, what is the best way of doing that?
> > Using regexp + substitution?
>
> Well, my first pass:
>
>    :%s/\([{;]\)\s*/\1\r /g
>
> does a pretty simple version of what you describe.  It's pretty
> dumb, so there are some caveats:
>
> 1) it indents the closing "}" as well...a 2nd post-processing
> pass could clean this up:
>
>   :%s/^\s*}\s*$
>
> 2) if for some reason you have a "{" or a ";" in a *value*
> instead of as a token, it will get treated the same way:
>
>    a.foo{font-name:"colon;brace{ malformed font-name";}
>
> (highly unlikely, but at least possible)
>
> 3) if more than one CSS declaration is on the same line:
>
>    a.foo{color:#f00;} a.bar{color:#ba5;}
>
> you won't get a break after the "}".  Though you can add this to
> the set of characters if you want to force a line-break after
> them too:
>
>    :%s/\([{};]\)\s*/\1\r /g
>
> 4) if your trailing CSS element has no semicolon, the closing
> brace ("}") won't get moved to the next line:
>
>    a.foo{color:#f00;display:block}
>
> I don't remember off the top of my head whether CSS requires
> trailing semicolons, but I seem to recall browsers being somewhat
> gracious regarding the omission.
>
> However, one of the above expressions should get you fairly close
> to what you want.
>
> -tim
--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_use" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Reply via email to