VIM:是否可以更改这些符号的颜色: !〜%^&安培; *() - + = [] {},<>:/?; 像Visual Studio一样吗?
答案 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
,因为已使用cCharacter
和cSpecialCharacter
。第二次和第三次匹配是一个突出'/'
而没有匹配注释前缀的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/