Vim + YAML
source link: https://tpaschalis.github.io/yaml-vim/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
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 spacessw (shiftwidth)
identation and auto-identation will use two spaces (eg. when using>>
orgg=G
)sts (softtabstop)
a <Tab> will count for two spaces when expanding tabs (inserting a tab, or using the Backspace key)expandttab
use spaces instead of tabsfoldmethod
folding will be based on indentation levelsnofoldenable
the 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 protected]: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).
Optional Reading
Ask HN: What’s in your .vimrc?
:help tabstop
:help softtabstop
:help shiftwidth
:help expandtab
ts/sw/sts explanation
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK