vim/after/ftplugin/markdown.vim @ cbbbc897e9b3
moar
author |
Steve Losh <steve@stevelosh.com> |
date |
Wed, 25 Jul 2012 15:20:18 -0400 |
parents |
dcd072c2fbb6 |
children |
1de6d9ecd350 |
" folding for Markdown headers, both styles (atx- and setex-)
" http://daringfireball.net/projects/markdown/syntax#header
"
" this code can be placed in file
" $HOME/.vim/after/ftplugin/markdown.vim
func! Foldexpr_markdown(lnum)
let l1 = getline(a:lnum)
if l1 =~ '^\s*$'
" ignore empty lines
return '='
endif
let l2 = getline(a:lnum+1)
if l2 =~ '^==\+\s*'
" next line is underlined (level 1)
return '>1'
elseif l2 =~ '^--\+\s*'
" next line is underlined (level 2)
return '>2'
elseif l1 =~ '^#'
" current line starts with hashes
return '>'.matchend(l1, '^#\+')
elseif a:lnum == 1
" fold any 'preamble'
return '>1'
else
" keep previous foldlevel
return '='
endif
endfunc
setlocal foldexpr=Foldexpr_markdown(v:lnum)
setlocal foldmethod=expr
"---------- everything after this is optional -----------------------
" change the following fold options to your liking
" see ':help fold-options' for more
setlocal foldenable
setlocal foldlevel=0
setlocal foldcolumn=0