Colorscheme不适用于标识符,函数和运算符

时间:2013-12-25 01:17:31

标签: vim color-scheme

我正在使用Vim 7.4(cmd)。我已经下载了维生素配色方案并对其进行了一些修改。但是,现在的问题是语法突出显示正常工作,除了识别identifiersoperators之外,比如说.cpp文件。这是我的配色方案的代码:

  1 " Maintainer:   Henrique C. Alves
  2 " Version:      1.1
  3 " Last Change:  September 23 2008
  4 
  5 set background=dark
  6 
  7 hi clear
  8 
  9 if exists("syntax_on")
 10   syntax reset
 11 endif
 12 
 13 let colors_name = "vitamins"
 14 
 15 " Vim >= 7.0 specific colors
 16 if version >= 700
 17   hi CursorLine guibg=#2d2d2d ctermbg=237 cterm=bold
 18   hi CursorColumn guibg=#2d2d2d ctermbg=236
 19   hi MatchParen guifg=#f6f3e8 guibg=#857b6f gui=bold ctermbg=59
 20   hi Pmenu      guifg=#f6f3e8 guibg=#444444 ctermbg=242
 21   hi PmenuSel   guifg=#000000 guibg=#cdd129 ctermfg=0 ctermbg=184
 22 endif

 24 " General colors
 25 hi Cursor       guifg=NONE    guibg=#656565 gui=none ctermbg=2
 26 hi Normal       guifg=#f6f3f0 guibg=#242424 gui=none ctermfg=254 ctermbg=234
 27 hi NonText      guifg=#808080 guibg=#303030 gui=none ctermfg=242 ctermbg=234
 28 hi LineNr       guifg=#5c5a4f guibg=#000000 gui=none ctermfg=239 ctermbg=234
 29 hi StatusLine   guifg=#f6f3e8 guibg=#444444 gui=italic ctermfg=239 ctermbg=234
 30 hi StatusLineNC guifg=#857b6f guibg=#444444 gui=none
 31 hi VertSplit    guifg=#444444 guibg=#444444 gui=none
 32 hi Folded       guibg=#384048 guifg=#a0a8b0 gui=none
 33 hi Title        guifg=#f6f3e8 guibg=NONE    gui=bold
 34 hi Visual       guifg=#ffffd7 guibg=#444444 gui=none ctermfg=186 ctermbg=238
 35 hi SpecialKey   guifg=#808080 guibg=#343434 gui=none

 37 " Syntax highlighting
 38 hi Comment      guifg=#808080 gui=italic ctermfg=186
 39 hi Todo         guifg=#8f8f8f gui=italic ctermfg=245
 40 hi Constant     guifg=#acf0f2 gui=none ctermfg=162
 41 hi String       guifg=#ff5d28 gui=italic ctermfg=154
 42 hi Identifier   guifg=#ff5d28 gui=none ctermfg=28                                                                                                                                             
 43 hi Function     guifg=#cdd129 gui=none ctermfg=142
 44 hi Type         guifg=#cdd129 gui=none ctermfg=184
 45 hi Statement    guifg=#af5f5f gui=none ctermfg=131
 46 hi Keyword      guifg=#cdd129 gui=none ctermfg=196
 47 hi PreProc      guifg=#ede39e gui=none ctermfg=187
 48 hi Number       guifg=#ede39e gui=none ctermfg=36
 49 hi Special      guifg=#acf0f2 gui=none ctermfg=159

第42和43行包含必要的代码。但是,函数名称,标识符和运算符仍然是白色的。有没有解决这个问题的方法,或者我在这里做错了什么?这是一个截图:

enter image description here

2 个答案:

答案 0 :(得分:1)

这与你的colorscheme无关。默认的C ++语法文件($VIMRUNTIME/syntax/cpp.vim构建在$VIMRUNTIME/syntax/c.vim之上。这些文件都没有将任何语法组链接到您的colorscheme中定义的IdentifierFunction组。

您需要找到更详细的语法(我不知道任何内容),或者自己编写合适的:syntax扩展名(并将它们放入~/.vim/after/syntax/cpp.vim),或者使用默认脚本提供的区别。

答案 1 :(得分:0)

:highlight命令只是您需要的一部分。更难的部分是:syntax命令。我在您的文件中没有看到任何内容,因此您依赖于.cpp的默认定义。要查找文件中某些内容的语法组,请复制并粘贴

中的示例代码
:help synID()

我发现.cpp文件中的函数和变量没有定义任何语法组。