【发布时间】:2017-12-20 17:07:38
【问题描述】:
我想在 bash heredoc 中突出显示语法。此外,我希望在 heredoc 中突出显示 bash 变量取消引用和命令替换。
使用these instructions 作为起点,我能够通过检查sh.vim 添加变量取消引用。我想你可以用类似的方式完成命令替换。
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/ contains=@YAML,hereDocDeref,hereDocDerefSimple
syn match hereDocDerefSimple "\$\%(\h\w*\|\d\)"
syn region hereDocDeref matchgroup=PreProc start="\${" end="}" contains=@shDerefList,shDerefVarArray
hi def link hereDocDeref PreProc
hi def link hereDocDerefSimple PreProc
我的问题是,这似乎不适用于任何类型的块(if、function、for 等)。例如:
我唯一知道的是,这不是缩进问题。更改缩进没有效果,并且在块外使用缩进可以正常工作。
【问题讨论】:
-
为了我的一生,我无法理解为什么有人会投票结束这个。这是一个关于使用支持广泛使用的编程工具的编程语言的编程问题的问题。
-
有些人认为所有 vi/vim 问题都属于 vi.SE,而另一些人似乎盲目假设所有“文本编辑器”问题都应该转到 SU。我不同意...
标签: bash vim syntax-highlighting heredoc vim-syntax-highlighting