Je souhaite obtenir une coloration syntaxique à l'intérieur d'un bash heredoc. De plus, je veux déréférencer les variables bash et mettre en évidence la substitution de commandes dans l'hérédoc. En utilisant these instructions comme point de départ, j'ai pu ajouter un déréférencement variable en examinant sh.vim. J'imagine que vous pourriez accomplir la substitution de commande d'une manière similaire.Vim HereDoc Mise en surbrillance
let s:bcs = b:current_syntax
unlet b:current_syntax
syntax include @YAML syntax/yaml.vim
syntax region hereDocYAML matchgroup=Statement start=/<<-\?\s*\z(YML\)/ end=/^\s*\z1/ [email protected],hereDocDeref,hereDocDerefSimple
syn match hereDocDerefSimple "\$\%(\h\w*\|\d\)"
syn region hereDocDeref matchgroup=PreProc start="\${" end="}" [email protected],shDerefVarArray
hi def link hereDocDeref PreProc
hi def link hereDocDerefSimple PreProc
Mon problème est, cela ne semble pas travailler dans une sorte de bloc (if
, function
, for
, etc.). Par exemple:
La seule chose que je sais est que ce n'est pas un problème d'indentation. La modification de l'indentation n'a aucun effet et l'utilisation de l'indentation en dehors d'un bloc fonctionne correctement.
Pour la vie de moi, je ne peux pas comprendre pourquoi quelqu'un voterait pour fermer ceci. Il s'agit d'un problème de programmation utilisant le langage de programmation qui soutient un outil de programmation largement utilisé. –
Il y a des gens qui pensent que toute question vi/vim appartient à vi.SE, et d'autres qui semblent supposer aveuglément tous les problèmes de "l'éditeur de texte" devraient aller à SU. Je ne suis pas d'accord... –