2016-10-03 3 views
1

In Vim können Sie ein Thema zum Beispiel "Colo: Wüste" nennen und bestimmte Syntax kolorieren, die nicht koloriert werden, wie sagen wir, ich wollte die Wörter "Access Validation" und "Panel" zu grünen Willen färben Vim ließ sich das tun?Benutzerdefinierte Syntax Färbung Vim

Unten ist mein Wüste Thema, das ich verwende meine Syntax einfärben

" 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 

Antwort

1

Sie beliebige Syntax-Hervorhebung hinzugefügt werden können. In meinem .vimrc habe ich eine in rot nachfolgende Leerzeichen zu markieren:

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

In Ihrem Fall könnten Sie tun:

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

Dann gründen Sie müssen nur autocmds, die den match Befehl läuft BufWinEnter, BufWinLeave, InsertEnter und InsertLeave:

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/ 

Sie können o Natürlich ist es feinkörniger, wenn Sie wollen, dass es nur für bestimmte Arten von Dateien gilt.

+0

Alles was ich tun musste, war kopieren 'markieren StackOverflow ctermfg = DarkGreen' und' passen StackOverflow/Panel \ | Access Validation/'diese zwei Zeilen und fügen Sie es am unteren Rand meines Codes. Vielen Dank! – taji01

Verwandte Themen