Vim + YAML
I’ve been cutting my teeth on a K8S stack. That means a lot of YAML.
After some time, there are two things I recommend if you’re working with Vim.
First off, add the following magic line to your .vimrc
autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab indentkeys-=0# indentkeys-=<:> foldmethod=indent nofoldenable
In english, this autocommand will enable Vim to apply a couple of rules to YAML files
- Skip re-indenting lines after a comment
#, after a colon
:or at the beginning of a line.
ts (tabstop)a <Tab> key will count as two spaces
sw (shiftwidth)identation and auto-identation will use two spaces (eg. when using
sts (softtabstop)a <Tab> will count for two spaces when expanding tabs (inserting a tab, or using the Backspace key)
expandttabuse spaces instead of tabs
foldmethodfolding will be based on indentation levels
nofoldenablethe file will be opened without any folds
You might want to take a look at the Folding page of the Vim wiki. In short, if your cursor is inside a fold-able section, use
zc to close a fold,
zo to open one, and
za to toggle/alternate the current fold. Alternatively, use
zM to close or
zR to open all folds throughout the file.
Secondly, you could also use mrk21’s yaml-vim plugin. It will enable syntax highlighting, and set indentation settings on its own. Since Vim v8, there’s native support for packages, so you can even avoid using a package manager and just
git clone email@example.com:mrk21/yaml-vim.git ~/.vim/pack/plugins/yaml-vim
Oh, and since last post, I’ve joined Beat as a Backend Engineer; I’m more pumped than I’ve been in a long time! : )
But I think this deserves another post of its own (soon).