Skip to content

Instantly share code, notes, and snippets.

Created March 15, 2011 17:38
  • Star 29 You must be signed in to star a gist
  • Fork 6 You must be signed in to fork a gist
Star You must be signed in to star a gist
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