2012-11-16 13 views
8

मैं vim (cygwin पर स्थापित) का उपयोग c++ कार्यक्रमों लिखने के लिए उजागर नहीं करता है लेकिन यह कुछ c++ कीवर्ड पर प्रकाश डाला नहीं है इस तरह के new, delete, public, friend, try, के रूप में, लेकिन दूसरों जैसे namespace, int पर प्रकाश डाला , const, operator, true, class, include। यह ऑपरेटरों के रंग भी नहीं बदलता है।vim कुछ C++ कीवर्ड

मैंने अपनी वाक्यविन्यास फ़ाइल कभी नहीं बदला। इसके साथ गलत क्या है? बहुत बहुत धन्यवाद।

मैं एक अनुकूलित रंग योजना का उपयोग करता हूं; जब मैं इसे desert रंग योजना में बदलता हूं, तो हाइलाइटिंग में कोई समस्या नहीं है, लेकिन मुझे उस रंग योजना का उपयोग करने की आवश्यकता है और इसे किसी और चीज़ में नहीं बदला जा सकता है।

मैं इसे निम्नलिखित चित्र के रूप में कार्यक्रम दिखाने चाहते हैं (मैं इस रंग ++ चित्र में नोटपैड के साथ योजना का इस्तेमाल किया):

example of correctly colored one

लेकिन अब यह निम्न चित्र के रूप में बताया गया है: not correctly colored one

colorscheme यहां है:

"Tomorrow Night Bright - Full Colour and 256 Colour 
" http://chriskempson.com 
" 
" Hex colour conversion functions borrowed from the theme "Desert256"" 

" Default GUI Colours 
let s:foreground = "eaeaea" 
let s:background = "000000" 
let s:selection = "424242" 
let s:line = "2a2a2a" 
let s:comment = "969896" 
let s:red = "d54e53" 
let s:orange = "e78c45" 
let s:yellow = "e7c547" 
let s:green = "b9ca4a" 
let s:aqua = "70c0b1" 
let s:blue = "7aa6da" 
let s:purple = "c397d8" 
let s:window = "4d5057" 

set background=dark 
hi clear 
syntax reset 

let g:colors_name = "Tomorrow-Night-Bright" 

if has("gui_running") || &t_Co == 88 || &t_Co == 256 
" Returns an approximate grey index for the given grey level 
fun <SID>grey_number(x) 
    if &t_Co == 88 
     if a:x < 23 
      return 0 
     elseif a:x < 69 
      return 1 
     elseif a:x < 103 
      return 2 
     elseif a:x < 127 
      return 3 
     elseif a:x < 150 
      return 4 
     elseif a:x < 173 
      return 5 
     elseif a:x < 196 
      return 6 
     elseif a:x < 219 
      return 7 
     elseif a:x < 243 
      return 8 
     else 
      return 9 
     endif 
    else 
     if a:x < 14 
      return 0 
     else 
      let l:n = (a:x - 8)/10 
      let l:m = (a:x - 8) % 10 
      if l:m < 5 
       return l:n 
      else 
       return l:n + 1 
      endif 
     endif 
    endif 
endfun 

" Returns the actual grey level represented by the grey index 
fun <SID>grey_level(n) 
    if &t_Co == 88 
     if a:n == 0 
      return 0 
     elseif a:n == 1 
      return 46 
     elseif a:n == 2 
      return 92 
     elseif a:n == 3 
      return 115 
     elseif a:n == 4 
      return 139 
     elseif a:n == 5 
      return 162 
     elseif a:n == 6 
      return 185 
     elseif a:n == 7 
      return 208 
     elseif a:n == 8 
      return 231 
     else 
      return 255 
     endif 
    else 
     if a:n == 0 
      return 0 
     else 
      return 8 + (a:n * 10) 
     endif 
    endif 
endfun 

" Returns the palette index for the given grey index 
fun <SID>grey_colour(n) 
    if &t_Co == 88 
     if a:n == 0 
      return 16 
     elseif a:n == 9 
      return 79 
     else 
      return 79 + a:n 
     endif 
    else 
     if a:n == 0 
      return 16 
     elseif a:n == 25 
      return 231 
     else 
      return 231 + a:n 
     endif 
    endif 
endfun 

" Returns an approximate colour index for the given colour level 
fun <SID>rgb_number(x) 
    if &t_Co == 88 
     if a:x < 69 
      return 0 
     elseif a:x < 172 
      return 1 
     elseif a:x < 230 
      return 2 
     else 
      return 3 
     endif 
    else 
     if a:x < 75 
      return 0 
     else 
      let l:n = (a:x - 55)/40 
      let l:m = (a:x - 55) % 40 
      if l:m < 20 
       return l:n 
      else 
       return l:n + 1 
      endif 
     endif 
    endif 
endfun 

" Returns the actual colour level for the given colour index 
fun <SID>rgb_level(n) 
    if &t_Co == 88 
     if a:n == 0 
      return 0 
     elseif a:n == 1 
      return 139 
     elseif a:n == 2 
      return 205 
     else 
      return 255 
     endif 
    else 
     if a:n == 0 
      return 0 
     else 
      return 55 + (a:n * 40) 
     endif 
    endif 
endfun 

" Returns the palette index for the given R/G/B colour indices 
fun <SID>rgb_colour(x, y, z) 
    if &t_Co == 88 
     return 16 + (a:x * 16) + (a:y * 4) + a:z 
    else 
     return 16 + (a:x * 36) + (a:y * 6) + a:z 
    endif 
endfun 

" Returns the palette index to approximate the given R/G/B colour levels 
fun <SID>colour(r, g, b) 
    " Get the closest grey 
    let l:gx = <SID>grey_number(a:r) 
    let l:gy = <SID>grey_number(a:g) 
    let l:gz = <SID>grey_number(a:b) 

    " Get the closest colour 
    let l:x = <SID>rgb_number(a:r) 
    let l:y = <SID>rgb_number(a:g) 
    let l:z = <SID>rgb_number(a:b) 

    if l:gx == l:gy && l:gy == l:gz 
     " There are two possibilities 
     let l:dgr = <SID>grey_level(l:gx) - a:r 
     let l:dgg = <SID>grey_level(l:gy) - a:g 
     let l:dgb = <SID>grey_level(l:gz) - a:b 
     let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb) 
     let l:dr = <SID>rgb_level(l:gx) - a:r 
     let l:dg = <SID>rgb_level(l:gy) - a:g 
     let l:db = <SID>rgb_level(l:gz) - a:b 
     let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db) 
     if l:dgrey < l:drgb 
      " Use the grey 
      return <SID>grey_colour(l:gx) 
     else 
      " Use the colour 
      return <SID>rgb_colour(l:x, l:y, l:z) 
     endif 
    else 
     " Only one possibility 
     return <SID>rgb_colour(l:x, l:y, l:z) 
    endif 
endfun 

" Returns the palette index to approximate the 'rrggbb' hex string 
fun <SID>rgb(rgb) 
    let l:r = ("0x" . strpart(a:rgb, 0, 2)) + 0 
    let l:g = ("0x" . strpart(a:rgb, 2, 2)) + 0 
    let l:b = ("0x" . strpart(a:rgb, 4, 2)) + 0 

    return <SID>colour(l:r, l:g, l:b) 
endfun 

" Sets the highlighting for the given group 
fun <SID>X(group, fg, bg, attr) 
    if a:fg != "" 
     exec "hi " . a:group . " guifg=#" . a:fg . " ctermfg=" . <SID>rgb(a:fg) 
    endif 
    if a:bg != "" 
     exec "hi " . a:group . " guibg=#" . a:bg . " ctermbg=" . <SID>rgb(a:bg) 
    endif 
    if a:attr != "" 
     exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr 
    endif 
endfun 

" Vim Highlighting 
call <SID>X("Normal", s:foreground, s:background, "") 
call <SID>X("LineNr", s:selection, "", "") 
call <SID>X("NonText", s:selection, "", "") 
call <SID>X("SpecialKey", s:selection, "", "") 
call <SID>X("Search", s:background, s:yellow, "") 
call <SID>X("TabLine", s:foreground, s:background, "reverse") 
call <SID>X("StatusLine", s:window, s:yellow, "reverse") 
call <SID>X("StatusLineNC", s:window, s:foreground, "reverse") 
call <SID>X("VertSplit", s:window, s:window, "none") 
call <SID>X("Visual", "", s:selection, "") 
call <SID>X("Directory", s:blue, "", "") 
call <SID>X("ModeMsg", s:green, "", "") 
call <SID>X("MoreMsg", s:green, "", "") 
call <SID>X("Question", s:green, "", "") 
call <SID>X("WarningMsg", s:red, "", "") 
call <SID>X("MatchParen", "", s:selection, "") 
call <SID>X("Folded", s:comment, s:background, "") 
call <SID>X("FoldColumn", "", s:background, "") 
if version >= 700 
    call <SID>X("CursorLine", "", s:line, "none") 
    call <SID>X("CursorColumn", "", s:line, "none") 
    call <SID>X("PMenu", s:foreground, s:selection, "none") 
    call <SID>X("PMenuSel", s:foreground, s:selection, "reverse") 
end 
if version >= 703 
    call <SID>X("ColorColumn", "", s:line, "none") 
end 

" Standard Highlighting 
call <SID>X("Comment", s:comment, "", "") 
call <SID>X("Todo", s:comment, s:background, "") 
call <SID>X("Title", s:comment, "", "") 
call <SID>X("Identifier", s:red, "", "none") 
call <SID>X("Statement", s:foreground, "", "") 
call <SID>X("Conditional", s:foreground, "", "") 
call <SID>X("Repeat", s:foreground, "", "") 
call <SID>X("Structure", s:purple, "", "") 
call <SID>X("Function", s:blue, "", "") 
call <SID>X("Constant", s:orange, "", "") 
call <SID>X("String", s:green, "", "") 
call <SID>X("Special", s:foreground, "", "") 
call <SID>X("PreProc", s:purple, "", "") 
call <SID>X("Operator", s:aqua, "", "none") 
call <SID>X("Type", s:blue, "", "none") 
call <SID>X("Define", s:purple, "", "none") 
call <SID>X("Include", s:blue, "", "") 
"call <SID>X("Ignore", "666666", "", "") 

" Vim Highlighting 
call <SID>X("vimCommand", s:red, "", "none") 

" C Highlighting 
call <SID>X("cType", s:yellow, "", "") 
call <SID>X("cStorageClass", s:purple, "", "") 
call <SID>X("cConditional", s:purple, "", "") 
call <SID>X("cRepeat", s:purple, "", "") 

" PHP Highlighting 
call <SID>X("phpVarSelector", s:red, "", "") 
call <SID>X("phpKeyword", s:purple, "", "") 
call <SID>X("phpRepeat", s:purple, "", "") 
call <SID>X("phpConditional", s:purple, "", "") 
call <SID>X("phpStatement", s:purple, "", "") 
call <SID>X("phpMemberSelector", s:foreground, "", "") 

" Ruby Highlighting 
call <SID>X("rubySymbol", s:green, "", "") 
call <SID>X("rubyConstant", s:yellow, "", "") 
call <SID>X("rubyAttribute", s:blue, "", "") 
call <SID>X("rubyInclude", s:blue, "", "") 
call <SID>X("rubyLocalVariableOrMethod", s:orange, "", "") 
call <SID>X("rubyCurlyBlock", s:orange, "", "") 
call <SID>X("rubyStringDelimiter", s:green, "", "") 
call <SID>X("rubyInterpolationDelimiter", s:orange, "", "") 
call <SID>X("rubyConditional", s:purple, "", "") 
call <SID>X("rubyRepeat", s:purple, "", "") 

" Python Highlighting 
call <SID>X("pythonInclude", s:purple, "", "") 
call <SID>X("pythonStatement", s:purple, "", "") 
call <SID>X("pythonConditional", s:purple, "", "") 
call <SID>X("pythonFunction", s:blue, "", "") 

" JavaScript Highlighting 
call <SID>X("javaScriptBraces", s:foreground, "", "") 
call <SID>X("javaScriptFunction", s:purple, "", "") 
call <SID>X("javaScriptConditional", s:purple, "", "") 
call <SID>X("javaScriptRepeat", s:purple, "", "") 
call <SID>X("javaScriptNumber", s:orange, "", "") 
call <SID>X("javaScriptMember", s:orange, "", "") 

" HTML Highlighting 
call <SID>X("htmlTag", s:red, "", "") 
call <SID>X("htmlTagName", s:red, "", "") 
call <SID>X("htmlArg", s:red, "", "") 
call <SID>X("htmlScriptTag", s:red, "", "") 

" Diff Highlighting 
call <SID>X("diffAdded", s:green, "", "") 
call <SID>X("diffRemoved", s:red, "", "") 

" Delete Functions 
delf <SID>X 
delf <SID>rgb 
delf <SID>colour 
delf <SID>rgb_colour 
delf <SID>rgb_level 
delf <SID>rgb_number 
delf <SID>grey_colour 
delf <SID>grey_level 
delf <SID>grey_number 
endif 

उत्तर

5

पैरा उजागर सी को यह करें: वक्तव्य ~/.vim/रंग/कल से xxx अवधि = बोल्ड ctermfg = 254 जीयूआई = बोल्ड guifg = # eaeaea अंतिम सेट:

call <SID>X("Statement", s:purple, "", "") 
2

सभी कीवर्ड अंततः मानक Statement सिंटैक्स समूह से लिंक करें। शायद वह एक मंजूरी दे दी है। यदि यह xxx cleared से पता चलता

:verbose highlight Statement 

का प्रयास करें, तो आप एक कदम आगे रहे हैं और अब की जांच के लिए क्यों अपने रंग-एक रंग को परिभाषित नहीं करता की जरूरत है।

+0

यह इस से पता चलता Night-Bright.vim – Sam

+1

यह 'verbose hi cppStatement' के लिए क्या दिखाता है? क्या यह 'स्टेटमेंट' से जुड़ा है? –

+0

हां, यह कथन से लिंक है: कथन स्टेटमेंट xxx लिंक स्टेटमेंट – Sam