在Vim中编辑Yaml时错误的缩进
Vim似乎没有正确地反应在YAML文件中的破折号,因此打破了格式。
例如,我有一个块应该是这样的:
handlers: - name: restart exim4 service: name=exim4 state=restarted
当我完成键入restart exim4
并键入service:
Vim reindents我的最后一个service
线:
handlers: - name: restart exim4 service: name=exim4 state=restarted
显然,Vim试图按列排列语句,但这不是YAML所需要的。 我想创build一个有两个值的数组。
如何解决这个问题?
安装这个插件:
https://github.com/chase/vim-ansible-yaml
它是用Ansible编写的,但理论上它可以与各种YAML文件一起工作。 你将不得不:不幸的是,设置filetype = ansible,如果你不是与可靠的相关文件工作。
为了在冒号后点击回车符时将默认的2-space YAML作为默认值,我将其添加到我的.vimrc
:
autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab
这对OP的预期结果也很好。
键入时可以禁用重新加载:
key:
:set indentkeys-=<:>
请编辑~/.vimrc
文件,并添加这些行:
filetype plugin indent on autocmd FileType yaml setl indentkeys-=<:>
注意: autocmd
在filetype
之后。
您可以通过在INSERT模式下键入CTRL-F来重新触发,例如:
hello: world foo: bar<CF>