2010-03-14 4 views

답변

5

기본 제공 구문으로는 불가능합니다.

let UglyColor = '#40ffff' 
let Greenish = '#00dd00' 
let MyStyle = 'bold' 
exe 'hi Keyword gui=' . MyStyle . ' guifg=' . UglyColor 
exe 'hi Comment guifg=' . Greenish 
그런 다음 사전 작성하여이를 더 걸릴 수

:이 같은 뭔가

let UglyColor = '#40ffff' 
let Greenish = '#00dd00' 
let ColourAssignment = {} 
let ColourAssignment['Keyword'] = {"GUIFG": UglyColor, "GUI": "Bold"} 
let ColourAssignment['Comment'] = {"GUIFG": Greenish} 

그리고이를 처리를 :

를 이용해서 자신의 구문을 만들 경우, 그것은 수행 할 수 있습니다
for key in keys(ColourAssignment) 
    let s:colours = ColourAssignment[key] 
    if has_key(s:colours, 'GUI') 
     let gui = s:colours['GUI'] 
    else 
     let gui='NONE' 
    endif 
    if has_key(s:colours, 'GUIFG') 
     let guifg = s:colours['GUIFG'] 
    else 
     let guifg='NONE' 
    endif 
    if has_key(s:colours, 'GUIBG') 
     let guibg = s:colours['GUIBG'] 
    else 
     let guibg='NONE' 
    endif 
    if key =~ '^\k*$' 
     execute "hi ".key." term=".term." cterm=".cterm." gui=".gui." ctermfg=".ctermfg." guifg=".guifg." ctermbg=".ctermbg." guibg=".guibg." guisp=".guisp 
    endif 

이것은 my Bandit colour scheme이 작동하는 방식입니다 (cterm 색상, 밝은 배경색 및 구문 파일을 자동으로 생성하기위한 로직이 조금 더 있음). 따라서 색상 구성 자체 하이라이트 ights). 저것을보고 당신의 자신의 색체 배합 설계를위한 기능 그리고 체재를 훔치기 위하여 자유롭게 느끼십시오.