Vim:C ++符号的颜色

时间:2009-09-18 14:24:56

标签: vim

VIM:是否可以更改这些符号的颜色: !〜%^&安培; *() - + = [] {},<>:/?; 像Visual Studio一样吗?

2 个答案:

答案 0 :(得分:5)

C / C ++语法在syntax / c.vim和syntax / cpp.vim中定义。如果您使用的是Linux,则主语法目录位于/ usr / share / vimXX /中,其中XX是版本(例如我的是vim72)。我不知道其他操作系统上的安装目录,但我相信你能找到它。我建议制作这些副本并将它们放在用户vim目录中(例如,在Linux中,$ HOME / .vim / syntax / c.vim等)。然后你可以添加你喜欢的任何东西。

C ++语法提供了C语法,因此你想要在两者中突出显示的任何符号都应该放在c.vim中,而C ++的任何符号都应该放在cpp.vim中。

要获取特定符号的语法高亮显示,您需要使用语法匹配语句,如:

syn match cUserSpecialCharacter display "[~!%^&*()-+=[\]{},.<>?:;]"
syn match cUserSpecialCharacter display "/[^*/]"me=e-1
syn match cUserSpecialCharacter display "/$"

我称之为cUserSpecialCharacter,因为已使用cCharactercSpecialCharacter。第二次和第三次匹配是一个突出'/'而没有匹配注释前缀的kludge,它会覆盖注释突出显示并中断所有内容。 “显示”选项告诉Vim,如果不显示,则不需要查找此匹配 - 如果您愿意,请参阅:help syn-display获取解释!

一旦定义了语法匹配,就可以将其链接到突出显示组,例如:

hi def link cUserSpecialCharacter cCharacter

这将把它放在已经定义的cCharacter组中,因此它会得到任何突出显示 - 在这种情况下,Character。您可以在c.vim底部看到一个很好的高亮组列表作为示例。如果你真的想要,你也可以通过以下方式硬编码高亮:

hi cUserSpecialCharacter term=reverse ctermfg=15 ctermbg=1 guifg=#ffffff guibg=#800000

(任意示例 - 我目前为Error群组突出显示。)有关详细信息,请参阅:help hi,或仅查看:hi以查看已定义突出显示的列表 - 大量示例。不过,我建议不要这样做,因为颜色方案不会改变。

答案 1 :(得分:0)

是的,您需要在vimfiles / colors / c.vim中编辑C颜色主题我不知道可以使用的所有主题选项,但我确信它们已记录在http://vim.org/