如何为HTML注释内的PlantUML代码实现VIM语法高亮?
解决VIM中HTML注释内PlantUML代码高亮失效问题
问题根源在于VIM默认的HTML注释语法会把PlantUML代码里的-->识别为注释结束符,导致HTML注释提前终止,后续的PlantUML代码不在注释范围内,从而无法触发PlantUML语法高亮。
调整后的~/.vim/vimrc配置如下:
autocmd FileType xhtml \ syntax include @iPlantUML syntax/plantuml.vim | \ syntax region rPlantUML start=/\v^\s*@startuml\s*$/ end=/\v^\s*@enduml\s*$/ keepend fold contains=@iPlantUML contained | \ syntax clear htmlComment | \ syntax region htmlComment start=/<!--/ end=/-->/ keepend contains=rPlantUML,@htmlCommentGroup
配置关键点说明
- 重新定义HTML注释区域:先清除原有
htmlComment规则,再重新定义让它包含rPlantUML区域。这样VIM解析时会优先处理rPlantUML内部的内容,不会把其中的-->当作HTML注释结束符。 - 优化PlantUML区域匹配:使用
\v^\s*@startuml\s*$作为起始匹配规则,允许@startuml/@enduml前后存在空格,适配更多代码格式。 - 保留原有HTML注释语法:通过包含
@htmlCommentGroup,确保HTML注释内非PlantUML内容的语法高亮不受影响。
替换原配置后重启VIM,HTML注释内的PlantUML代码即可正常高亮。
内容的提问来源于stack exchange,提问作者Cody
相关产品推荐
相关产品推荐

