我一直在为Spike模糊测试API定制自定义语法突出显示工具。
https://github.com/kkirsche/spike.vim
非常简单的API,所以它是一个非常简单的文件。
这样说,在字符串中,存在转义序列,例如\ n表示换行,\ r表示回车,这在许多编程语言(如Python,C等)中很常见。 ,我想以与您对这些编程语言相同的方式来突出显示它们。
我的理解是这些应该是一个匹配定义,但说实话我不确定-而且我不知道Vim的不同类型是哪种字符(例如,Comment,String,Special,Function,等)
在VIM语法突出显示文件中处理突出显示转义序列的正确方法是什么?
答案 0 :(得分:1)
看一下Vim附带的一些语法脚本,似乎所有人都(大部分)同意将其链接到SpecialChar
默认突出显示组(默认情况下它本身链接到Special
):>
$VIMRUNTIME/syntax/c.vim
:syn match cSpecial display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)"
syn region cString start=+\(L\|u\|u8\|U\|R\|LR\|u8R\|uR\|UR\)\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend
hi def link cSpecial SpecialChar
$VIMRUNTIME/syntax/java.vim
:syn match javaSpecialChar contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\)"
hi def link javaSpecialChar SpecialChar
$VIMRUNTIME/syntax/javascript.vim
:syn match javaScriptSpecial "\\\d\d\d\|\\."
syn match javaScriptSpecialCharacter "'\\.'"
hi def link javaScriptSpecial Special
hi def link javaScriptSpecialCharacter javaScriptSpecial
*Special any special symbol SpecialChar special character in a constant Tag you can use CTRL-] on this Delimiter character that needs attention SpecialComment special things inside a comment