Tuesday, June 10, 2014

Re: indent versus previous line

On Tuesday, June 10, 2014 11:45:35 AM UTC+2, Christian Brabandt wrote:
> Am 2014-06-10 11:10, schrieb Ni Va:
>
> > On Tuesday, June 10, 2014 10:30:30 AM UTC+2, Christian Brabandt wrote:
>
> >> Am 2014-06-10 09:40, schrieb Ni Va:
>
> >>
>
> >> > Hi,
>
> >>
>
> >> >
>
> >>
>
> >> >
>
> >>
>
> >> > I got a file that contains those lines :
>
> >>
>
> >> >
>
> >>
>
> >> >
>
> >>
>
> >> > \s\s\s\s\sFOO
>
> >>
>
> >> > BAR1
>
> >>
>
> >> > BAR2
>
> >>
>
> >> > END_OF_BLOCK
>
> >>
>
> >> > \s\s\s\s\sFOO2
>
> >>
>
> >> > BAR1
>
> >>
>
> >> > BAR2
>
> >>
>
> >> > END_OF_BLOCK
>
> >>
>
> >> > \s\s\s\s\sFOO3
>
> >>
>
> >> > BAR1
>
> >>
>
> >> > BAR2
>
> >>
>
> >> > END_OF_BLOCK
>
> >>
>
> >> >
>
> >>
>
> >> >
>
> >>
>
> >> > I would like to indent all sublines of each BLOCK to be like that :
>
> >>
>
> >> >
>
> >>
>
> >> > \s\s\s\s\sFOO
>
> >>
>
> >> > BAR1
>
> >>
>
> >> > BAR2
>
> >>
>
> >> > END_OF_BLOCK
>
> >>
>
> >> > \s\s\s\s\sFOO2
>
> >>
>
> >> > BAR1
>
> >>
>
> >> > BAR2
>
> >>
>
> >> > END_OF_BLOCK
>
> >>
>
> >> > \s\s\s\s\sFOO3
>
> >>
>
> >> > BAR1
>
> >>
>
> >> > BAR2
>
> >>
>
> >> > END_OF_BLOCK
>
> >>
>
> >> >
>
> >>
>
> >> >
>
> >>
>
> >> >
>
> >>
>
> >> > My file contains 500000 lines so it has to be done automatically
>
> >>
>
> >>
>
> >>
>
> >> That should work:
>
> >>
>
> >> v/^\%(\\s\)\{5}/>
>
> >>
>
> >>
>
> >>
>
> >> Best,
>
> >>
>
> >> Christian
>
> >
>
> >
>
> >
>
> > Is there another soluce because the file can contains several indent
>
> > level:
>
> >
>
> > \s\s\s\s\sFOO
>
> > BAR1
>
> > BAR2
>
> > END_OF_BLOCK
>
> > \s\s\s\s\sFOO2
>
> > BAR1
>
> > BAR2
>
> > END_OF_BLOCK
>
> > \s\s\s\s\s\s\s\s\sFOO3
>
> > BAR1
>
> > BAR2
>
> > END_OF_BLOCK
>
> > \s\s\sFOO2
>
> > BAR1
>
> > BAR2
>
> > END_OF_BLOCK
>
>
>
>
>
> Adjust the regular expression ;)
>
> :v/^\%(\\s\)\+/>
>
> That will indent each line, that does *not* start with '\s' by one
>
> shiftwidth.
>
> Does that help you?
>
>
>
> Best,
>
> Christian

I have triedf with adjusted regex and launching but it take count only of the first line indent. I think there is a mistake in your cmd. I correct by this one.

:v/^\%\(\s\)\+/>


But it does that

\s\s\sFOO1
\s\s\sBAR1
\s\s\sBAR2
\s\s\s\s\sFOO2
\s\s\sBAR1
\s\s\sBAR2
\s\s\s\s\s\s\sFOO3
\s\s\sBAR1
\s\s\sBAR2

out of that
\s\s\sFOO1
\s\s\sBAR1
\s\s\sBAR2
\s\s\s\s\sFOO2
\s\s\s\s\sBAR1
\s\s\s\s\sBAR2
\s\s\s\s\s\s\sFOO3
\s\s\s\s\s\s\sBAR1
\s\s\s\s\s\s\sBAR2



--
--
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: