begin end folding problem

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

begin end folding problem

Ni Va
Hi,


I'have got file content which is alike that:


BEGIN


SECTION


SECTION


SECTION


END


Would like to fold starting at SECTION line, ending at :
- line before second to last SECTION
- for the last SECTION, ending at line before END tag.

How can I do that ?
Thank you

--
--
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 [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: begin end folding problem

John Passaro
If the text is literally as you describe:

:set foldmethod=manual or :set foldmethod=marker

gg  " go to beginning of file
3/SECTION  " takes you to the third SECTION
:1,-2fold       " creates a fold from first line to end of previous section
:.,$fold         " creates a fold from here to the end of the file

If you use foldmethod=manual, you'll have to use :session when exiting vim, otherwise the folds will be lost next time you open the file.

If you use foldmethod=marker, the markers will be stored directly in the text, which may or may not be acceptable for you depending on the nature of your document. This can be useful if you have a way to hide them from your audience (e.g. comment them out), or if your audience is willing to ignore them.


On Thu, Jun 15, 2017 at 4:29 PM, Ni Va <[hidden email]> wrote:
Hi,


I'have got file content which is alike that:


BEGIN


SECTION


SECTION


SECTION


END


Would like to fold starting at SECTION line, ending at :
- line before second to last SECTION
- for the last SECTION, ending at line before END tag.

How can I do that ?
Thank you

--
--
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 [hidden email].
For more options, visit https://groups.google.com/d/optout.

--
--
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 [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: begin end folding problem

Ben Fritz
In reply to this post by Ni Va
On Thursday, June 15, 2017 at 3:29:32 PM UTC-5, Ni Va wrote:

> Hi,
>
>
> I'have got file content which is alike that:
>
>
> BEGIN
>
>
> SECTION
>
>
> SECTION
>
>
> SECTION
>
>
> END
>
>
> Would like to fold starting at SECTION line, ending at :
> - line before second to last SECTION
> - for the last SECTION, ending at line before END tag.
>
> How can I do that ?
> Thank you
Using 'foldexpr' you can start a new fold at a given level by returning ">1", ">2", etc. See :help 'foldexpr' and :help fold-expr.

So your foldexpr function would return ">1" or similar for any line containing "SECTION" (probably using getline() to get the line text). Once you reach END, return 0. On other lines you can probably return "=".

--
--
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 [hidden email].
For more options, visit https://groups.google.com/d/optout.
Loading...