diff --git a/vim/bundle/vim-yaml/README.md b/vim/bundle/vim-yaml/README.md new file mode 100644 index 0000000..dd13341 --- /dev/null +++ b/vim/bundle/vim-yaml/README.md @@ -0,0 +1,4 @@ +# For pathogen + +Thanks: https://gist.github.com/871107 + diff --git a/vim/bundle/vim-yaml/after/ftplugin/yaml.vim b/vim/bundle/vim-yaml/after/ftplugin/yaml.vim new file mode 100644 index 0000000..58d43ad --- /dev/null +++ b/vim/bundle/vim-yaml/after/ftplugin/yaml.vim @@ -0,0 +1,37 @@ +" Vim indent file +" Language: Yaml +" Author: Ian Young + +if exists("b:did_indent") + finish +endif +"runtime! indent/ruby.vim +"unlet! b:did_indent +let b:did_indent = 1 + +setlocal autoindent sw=2 et +setlocal indentexpr=GetYamlIndent() +setlocal indentkeys=o,O,*,!^F + +function! GetYamlIndent() + let prevlnum = v:lnum - 1 + if prevlnum == 0 + return 0 + endif + let line = substitute(getline(v:lnum),'\s\+$','','') + let prevline = substitute(getline(prevlnum),'\s\+$','','') + + let indent = indent(prevlnum) + let increase = indent + &sw + let decrease = indent - &sw + + if prevline =~ ':$' + return increase + elseif prevline =~ '^\s\+\-' && line =~ '^\s\+[^-]\+:' + return decrease + else + return indent + endif +endfunction + +" vim:set sw=2: