On Jan 7, 10:16 am, Alexandre Leray <[email protected]>
wrote:
> Hi,
>
> I'm maintaining markdown files using vim, and some of them are becoming
> quite large. I'm looking for a vim plugin to fold the files according to
> their H1-H6 markers (I'm using === and --- for h1 and h2). Do you know
> any script to do that?
>
> Best,
>
> Alexandre Leray

May I suggest my VOoM plugin:
http://www.vim.org/scripts/script.php?script_id=2657
The latest version can outline Markdown
        :Voom markdown
It's more powerful than just folding.

But if you must have folding, it should be easy to write a folding
expression.
Here is my attempt, not tested very well:

" folding for Markdown headers, both style
" http://daringfireball.net/projects/markdown/syntax#header
setl foldmethod=expr
setl foldexpr=Foldexpr_markdown(v:lnum)
func! Foldexpr_markdown(lnum)
    let l1 = getline(a:lnum)
    " ignore empty lines
    if l1 =~ '^\s*$'
        return '='
    endif
    " next line is underline
    let l2 = getline(a:lnum+1)
    if  l2 =~ '^=\+\s*'
        return '>1'
    elseif l2 =~ '^-\+\s*'
        return '>2'
    " current line starts with hashes
    elseif l1 =~ '^#'
        return '>'.matchend(l1, '^#\+')
    " keep previous foldlevel
    else
        return '='
    endif
endfunc


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