Vim ne semble pas réagir correctement à un symbole de tiret dans les fichiers YAML, cassant ainsi le format.
Par exemple, j'ai un bloc qui devrait ressembler à ceci:
handlers:
- name: restart exim4
service: name=exim4 state=restarted
Quand j'ai fini de taper restart exim4
et de taper service:
Vim réindente ma dernière service
ligne:
handlers:
- name: restart exim4
service: name=exim4 state=restarted
Il est donc clair que Vim essaie d'aligner les phrases par colonne, mais ce n'est pas ce qui est nécessaire dans YAML. Je veux créer un tableau avec deux valeurs.
Comment y remédier?
yaml
syntaxe régulière mérite également d'être# vim:ft=ansible:
suivez cette voie, vous devez mettre tous vos fichiers non ansibles.Afin d'obtenir le joli YAML à 2 espaces par défaut lorsque je frappe le retour chariot après les deux points, j'ai ajouté ceci à mon
.vimrc
:Cela joue également bien avec le tableau de bord pour le résultat attendu de l'OP.
la source
/etc/vim/vimrc
(pour la configuration globale) alors que je ne pouvais pas faire fonctionner levim-ansible-yaml
plugin globalement.autocmd FileType yaml,yml setlocal ...
Vous pouvez désactiver la réindentation lorsque vous tapez la
:
clé:Veuillez modifier le
~/.vimrc
fichier et ajouter ces lignes:Remarque:
autocmd
vient aprèsfiletype
.Vous pouvez déclencher la réindentation en tapant CTRL-Fen mode INSERT , par exemple:
la source
Vous pouvez utiliser cette autocommande pour que Vim indente correctement les fichiers YAML (placez-le dans votre
.vimrc
):Fondamentalement, pour le fichier YAML, il demande à Vim de:
#
) au début d'une ligne ou un signe deux-points.la source
Vous pouvez ajouter un commentaire dans votre YAML pour indiquer la configuration spéciale de Vim pour ce fichier. Par exemple:
Ensuite, tout le monde, qui utilise ce fichier avec un vim par défaut, peut partager la configuration du créateur du fichier. Cela fonctionne bien surtout en coopération.
la source
Voici le que
augroup
j'ai pour yaml:la source
J'ai trouvé que https://github.com/stephpy/vim-yaml fonctionnait très bien. C'est un plugin vim qui effectue l'indentation (et la coloration syntaxique) des fichiers yaml. L'installer résout également le problème spécifique que vous avez posé.
Vous devez installer le plugin (voir le doco dans le repo GitHub) et tant
filetype=yaml
qu'il corrigera votre indentation. Cela vous aidera tous les deuxV
pour la sélection par ligne puis utiliserj
ouk
pour sélectionner plus de lignes) puis déclencher le formatage de vim avec=
la source