这里有一份中文的入门文档,但是太长了,不想读,所以有本文
- 最快的办法,就是找一个语法相近的语法高亮文件,稍微改一下
- 自己从头写的话,首先搞定关键字:
syntax case match "是否区分大小写 syntax keyword 你的关键字类别名字x 关键字1 关键字2 syntax keyword 同样填x的话,不会覆盖,只追加 关键字3 关键字4
关键字搞不定的,一般用正则匹配:
syntax match 类别名 /正则表达式/
正则有个麻烦是不能部分匹配,比如我要匹配花括号前的,/[a-zA-Z_]+s{/, Vim的语法高亮没有匹配组的概念,没法只高亮前面的字串,导致花括号也染色了。
这种情况下,需要用到嵌套识别,一般是region里嵌套keyword和match,也可以match里嵌套match。例如:
syntax keyword spTodo contained TODO FIXME XXX syntax cluster spCommentGrp contains=spTodo syntax region spComment start="//" skip="\$" end="$" keepend contains=@spCommentGrp
通过contains关键字,指定这个区域包含了哪些语法单位。