Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Dumb-smart indentation for Yaml
" Vim indent file
" Language: Yaml
" Author: Ian Young
" Get it bundled for pathogen:
if exists("b:did_indent")
"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,*<Return>,!^F
function! GetYamlIndent()
let lnum = v:lnum - 1
if lnum == 0
return 0
let line = substitute(getline(lnum),'\s\+$','','')
let indent = indent(lnum)
let increase = indent + &sw
if line =~ ':$'
return increase
return indent
" vim:set sw=2:
Copy link

Thanks !

Copy link

that's amazing, thanks so much! :)

Copy link

Thanks for this. Helps a lot.

modified for "set sw=4" (personal preferences)

Copy link

heph commented Nov 5, 2021

Oh wow. Thanks for figuring this out. The default vim yaml indent was driving me nuts editing all these kubernetes configs!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment