我正在尝试弄清楚如何在vim中突出显示匹配的特定部分。
给定以下示例规则(取自coffeescript语法文件source):
这个正则表达式匹配各种coffeescript操作符。这些操作符会被突出显示(在我的
例如,由于coffeeExtendedOp与链接到Operator的coffeeOperator相关联,在上面的源文件中所有这些都有效,但我想知道如何在我的vimrc中特别突出显示上面
编辑:我认为规则被放置在簇下面,所以可能这就是为什么它不影响任何东西的原因。有没有办法访问簇内的规则?
编辑:问题已澄清。
解决方案:
现在的问题是,当我将它们放入我的
给定以下示例规则(取自coffeescript语法文件source):
syn match coffeeExtendedOp /\%(\S\s*\)\@<=[+\-*/%&|\^=!<>?.]\+\|[-=]>\|--\|++\|:/ display
这个正则表达式匹配各种coffeescript操作符。这些操作符会被突出显示(在我的
vimrc
中)像这样:hi Operator guifg=#ff0000
例如,由于coffeeExtendedOp与链接到Operator的coffeeOperator相关联,在上面的源文件中所有这些都有效,但我想知道如何在我的vimrc中特别突出显示上面
syn match
中匹配的++
运算符,使用不同的颜色,比如蓝色(也就是说,不修改上面的原始源文件)。我只是想知道这是否可能。编辑:我认为规则被放置在簇下面,所以可能这就是为什么它不影响任何东西的原因。有没有办法访问簇内的规则?
编辑:问题已澄清。
解决方案:
syn match plusplus /++/ contained containedin=coffeeExtendedOp display
hi plusplus guifg=#0000ff
现在的问题是,当我将它们放入我的
vimrc
文件中时,它只能在vim中作为命令运行,而不能正常工作。有什么想法吗?可能是这些东西被隐藏在集群后面了吗?但是为什么通过命令在vim中可见呢?我尝试过包括语法文件, 但似乎没有任何效果。
++
操作符怎么样?因为一切都在一个集群下,所以不可能吗? - Jorge Israel Peña:scriptnames
应该向你展示脚本加载的顺序。你可能想把你的条目放到~/.vim/after/syntax/coffee.vim
中。 - holygeek~/.vim/colors/Blaenk.vim
中。但你仍然是正确的 :):scriptnames
显示我的颜色文件在coffee之前被加载。将其放在after目录中非常好用 :) - Jorge Israel Peña