是否可以让Vim语法文件命令跨越多行?

时间:2009-10-13 19:43:06

标签: scripting syntax-highlighting vim

我正在尝试创建一个语法文件,我想为不同的颜色突出显示创建一些关键字组(例如保留字,运算符等将是不同的颜色)。我可以通过执行以下两个选项之一来实现此目的:

选项1

syn keyword MyLangOperators operator1 operator2 operator3
syn keyword MyLangOperators operator4 operator5 operator6

syn keyword MyLangReserved reserved1 reserved2 reserved3
syn keyword MyLangReserved reserved4 reserved5 reserved6

这不是太糟糕,但如果我试图按字母顺序保留它们,一旦保留/操作员等的数量到达那里就会变得非常混乱。特别是如果你需要在某个地方添加新的。

选项2

syn keyword MyLangOperators operator1
syn keyword MyLangOperators operator2
syn keyword MyLangOperators operator3
syn keyword MyLangOperators operator4
syn keyword MyLangOperators operator5
syn keyword MyLangOperators operator6

syn keyword MyLangReserved reserved1
syn keyword MyLangReserved reserved2
syn keyword MyLangReserved reserved3
syn keyword MyLangReserved reserved4
syn keyword MyLangReserved reserved5
syn keyword MyLangReserved reserved6

此选项在以后添加保留/运算符要容易得多,因为很容易按字母顺序保留它们。但是,每行都有很多重复的文本(即syn关键字[groupname])。

是否有任何可能的方法可以跨越多行?这样的事情可能是:

syn keyword MyLangOperators ~
    operator1 ~
    operator2 ~
    operator3 ~
    operator4 ~
    operator5 ~
    operator6

syn keyword MyLangReserved ~
    reserved1 ~
    reserved2 ~
    reserved3 ~
    reserved4 ~
    reserved5 ~
    reserved6

在这种情况下,波浪号(〜)将是Vim编辑器的一个信号,命令继续到下一行。

有没有这样的事情,或者我坚持使用选项1或2(很可能我会选择2)?

1 个答案:

答案 0 :(得分:7)

这样做(:help line-continuation

syn keyword MyLangOperators
    \ operator1
    \ operator2
    \ operator3
    \ operator4
    \ operator5
    \ operator6