2016-10-03 58 views
1

在vim中,你可以調用一個主題,例如'colo:desert',並着色某些沒有着色的語法,比如說我想將單詞「Access Validation」和「Panel」着色爲綠色Vim讓我們這樣做?自定義語法着色vim

下面是我的沙漠主題,我用上色我的語法

" cool help screens 
    " :he group-name 
    " :he highlight-groups 
    " :he cterm-colors 

    set background=dark 
    if version > 580 
     " no guarantees for version 5.8 and below, but this makes it stop 
     " complaining 
     hi clear 
     if exists("syntax_on") 
      syntax reset 
     endif 
    endif 
    let g:colors_name="desert" 

    hi Normal  guifg=White guibg=grey20 

    " highlight groups 
    hi Cursor  guibg=khaki guifg=slategrey 
    "hi CursorIM 
    "hi Directory 
    "hi DiffAdd 
    "hi DiffChange 
    "hi DiffDelete 
    "hi DiffText 
    "hi ErrorMsg 
    hi VertSplit guibg=#c2bfa5 guifg=grey50 gui=none 
    hi Folded  guibg=grey30 guifg=gold 
    hi FoldColumn guibg=grey30 guifg=tan 
    hi IncSearch guifg=slategrey guibg=khaki 
    "hi LineNr 
    hi ModeMsg  guifg=goldenrod 
    hi MoreMsg  guifg=SeaGreen 
    hi NonText  guifg=LightBlue guibg=grey30 
    hi Question  guifg=springgreen 
    hi Search  guibg=peru guifg=wheat 
    hi SpecialKey guifg=yellowgreen 
    hi StatusLine guibg=#c2bfa5 guifg=black gui=none 
    hi StatusLineNC guibg=#c2bfa5 guifg=grey50 gui=none 
    hi Title  guifg=indianred 
    hi Visual  gui=none guifg=khaki guibg=olivedrab 
    "hi VisualNOS 
    hi WarningMsg guifg=salmon 
    "hi WildMenu 
    "hi Menu 
    "hi Scrollbar 
    "hi Tooltip 

    " syntax highlighting groups 
    hi Comment  guifg=SkyBlue 
    hi Constant  guifg=#ffa0a0 
    hi Identifier guifg=palegreen 
    hi Statement guifg=khaki 
    hi PreProc  guifg=indianred 
    hi Type   guifg=darkkhaki 
    hi Special  guifg=navajowhite 
    "hi Underlined 
    hi Ignore  guifg=grey40 
    "hi Error 
    hi Todo   guifg=orangered guibg=yellow2 

    " color terminal definitions 
    hi SpecialKey ctermfg=darkgreen 
    hi NonText  cterm=bold ctermfg=darkblue 
    hi Directory ctermfg=darkcyan 
    hi ErrorMsg  cterm=bold ctermfg=7 ctermbg=1 
    hi IncSearch cterm=NONE ctermfg=yellow ctermbg=green 
    hi Search  cterm=NONE ctermfg=grey ctermbg=blue 
    hi MoreMsg  ctermfg=darkgreen 
    hi ModeMsg  cterm=NONE ctermfg=brown 
    hi LineNr  ctermfg=3 
    hi Question  ctermfg=green 
    hi StatusLine cterm=bold,reverse 
    hi StatusLineNC cterm=reverse 
    hi VertSplit cterm=reverse 
    hi Title  ctermfg=5 
    hi Visual  cterm=reverse 
    hi VisualNOS cterm=bold,underline 
    hi WarningMsg ctermfg=1 
    hi WildMenu  ctermfg=0 ctermbg=3 
    hi Folded  ctermfg=darkgrey ctermbg=NONE 
    hi FoldColumn ctermfg=darkgrey ctermbg=NONE 
    hi DiffAdd  ctermbg=4 
    hi DiffChange ctermbg=5 
    hi DiffDelete cterm=bold ctermfg=4 ctermbg=6 
    hi DiffText  cterm=bold ctermbg=1 
    hi Comment  ctermfg=darkcyan 
    hi Constant  ctermfg=brown 
    hi Special  ctermfg=5 
    hi Identifier ctermfg=6 
    hi Statement ctermfg=3 
    hi PreProc  ctermfg=5 
    hi Type   ctermfg=2 
    hi Underlined cterm=underline ctermfg=5 
    hi Ignore  cterm=bold ctermfg=7 
    hi Ignore  ctermfg=darkgrey 
    hi Error  cterm=bold ctermfg=7 ctermbg=1 

    :setf sql 
    :set number 
    :highlight LineNr Ctermfg=red 
    :set nowrap 

    "vim: sw=4 

回答

1

您可以添加任意的語法高亮顯示。在我.vimrc,我有一個紅色標記尾隨空白:

highlight ExtraWhitespace ctermbg=1 guibg=red 
match ExtraWhitespace /\s\+$/ 

在你的情況,你可以這樣做:

highlight StackOverflow ctermfg=DarkGreen 
match StackOverflow /Panel\|Access Validation/ 

然後你只需要設置一個用於運行match命令自動命令BufWinEnterBufWinLeaveInsertEnterInsertLeave

autocmd BufWinEnter * match StackOverflow /Panel\|Access Validation/ 
autocmd BufWinLeave * match StackOverflow /Panel\|Access Validation/ 
autocmd InsertEnter * match StackOverflow /Panel\|Access Validation/ 
autocmd InsertLeave * match StackOverflow /Panel\|Access Validation/ 

您可以Ø如果你只是希望它適用於特定類型的文件,那麼當然它會更細化。

+0

我所需要做的就是複製'突出顯示StackOverflow ctermfg = DarkGreen'和'匹配StackOverflow/Panel \ | Access Validation /'這兩行並粘貼到我的代碼底部。謝謝! – taji01