Vim : facilitez vous le Yaml
Pour tous les symfonistes (et quelques autres), manipuler des fichiers yml d'une bonne centaine de lignes minimum est une activité normale et quotidienne, indispensable pour se mettre de bonne humeur au réveil. Pour ceux qui ne connaitraient pas le parser Yaml, il s'agit d'un animal susceptible, ne tolérant que les indentations de 2 espaces et haïssant les tabulations au point de refuser de parcourir un fichier en contenant (même une petite). Il est assez facile de configurer Vim une bonne fois pour toute afin de proposer les options suivantes :
- indentation par défaut : 2 espaces
- transforme les tabulations en 2 espaces
- affiche les caractères de fin de ligne, les tabulations et espaces entre le dernier caractère et la fin de la ligne
set tabstop=2
set shiftwidth=2
set expandtab
set listchars=eol:¤,trail:-
Les listchars ne seront affichés que si vous le demandez avec un «set list» pour le désactiver : «set nolist»
Cela évite les problèmes les plus courants. Par contre, dès que vos Yml deviennent consistants, il devient délicat de repérer les niveaux d'imbrication des blocs. Il est pour cela possible de surligner la ligne et la colonne courante pendant le mode édition. Vim vous permet en effet de modifier sa conf suite à un évènement. Demandez le surlignage lors du passage en mode édition et seulement pour les fichiers Yml pour les colonnes :
" Changement de configuration lors des transitions
" mode commande & mode insertion
autocmd insertLeave * set nocursorline
autocmd insertEnter * set cursorline
autocmd insertLeave *.yml set nocursorcolumn
autocmd insertEnter *.yml set cursorcolumn
" Le choix des couleurs...
highlight CursorLine cterm=none ctermbg=DarkBlue
highlight CursorColumn cterm=none ctermbg=DarkRed
Et voila le travail, en mode insertion, les lignes sont surlignées en bleu et dans les fichiers Yml uniquement, la colonne courante est marquée en rouge pour permettre de voir rapidement le niveau d'indentation des blocs :
- indentation par défaut : 2 espaces
- transforme les tabulations en 2 espaces
- affiche les caractères de fin de ligne, les tabulations et espaces entre le dernier caractère et la fin de la ligne
set tabstop=2
set shiftwidth=2
set expandtab
set listchars=eol:¤,trail:-
Les listchars ne seront affichés que si vous le demandez avec un «set list» pour le désactiver : «set nolist»
Cela évite les problèmes les plus courants. Par contre, dès que vos Yml deviennent consistants, il devient délicat de repérer les niveaux d'imbrication des blocs. Il est pour cela possible de surligner la ligne et la colonne courante pendant le mode édition. Vim vous permet en effet de modifier sa conf suite à un évènement. Demandez le surlignage lors du passage en mode édition et seulement pour les fichiers Yml pour les colonnes :
" Changement de configuration lors des transitions
" mode commande & mode insertion
autocmd insertLeave * set nocursorline
autocmd insertEnter * set cursorline
autocmd insertLeave *.yml set nocursorcolumn
autocmd insertEnter *.yml set cursorcolumn
" Le choix des couleurs...
highlight CursorLine cterm=none ctermbg=DarkBlue
highlight CursorColumn cterm=none ctermbg=DarkRed
Et voila le travail, en mode insertion, les lignes sont surlignées en bleu et dans les fichiers Yml uniquement, la colonne courante est marquée en rouge pour permettre de voir rapidement le niveau d'indentation des blocs :