Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Vim fold function which does indentation based folding.
function! IndentationFoldExpr(ln) " {{{
let line = getline(a:ln)
if line =~ '^\s*$'
return '-1' "'='
let ind = indent(a:ln) / &sw
let ind_next = indent(nextnonblank(a:ln+1)) / &sw
if ind_next <= ind
return ind
elseif ind_next > ind
return '>'.ind_next
endfunction " }}}
au FileType txt setlocal foldmethod=expr foldexpr=IndentationFoldExpr(v:lnum)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment