2016-10-03 3 views
1

В vim вы можете назвать тему, например, colo: desert, и раскрасить определенный синтаксис, который не раскрашен, например, скажем, я хотел раскрасить слова «Access Validation» и «Panel» на зеленый Вим позволил это сделать?Пользовательский синтаксис раскраски 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/ 

Тогда вам просто нужно настроить autocmds, который запускает команду match для BufWinEnter, BufWinLeave, InsertEnter и 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/ 

Вы можете о f course сделать это более мелкозернистым, если вы просто хотите, чтобы он применялся к определенным типам файлов.

+0

Все, что мне нужно было сделать, это копировать 'highlight StackOverflow ctermfg = DarkGreen' и' сопоставлять StackOverflow/Panel \ | Access Validation/'эти две строки и вставлять их в конец моего кода. Благодаря! – taji01

Смежные вопросы