Как определить мои собственные цвета подсветки для использования с matchadd () в vim? - PullRequest
3 голосов
/ 04 августа 2011

Я недавно нашел этот маленький кусочек кода для моего .vimrc

if has("autocmd")
  " Highlight TODO, FIXME, NOTE, etc.
  if v:version > 701
    autocmd Syntax * call matchadd('Todo',  '\W\zs\(TODO\|FIXME\|CHANGED\|XXX\|BUG\|HACK\)')
    autocmd Syntax * call matchadd('Debug', '\W\zs\(NOTE\|INFO\|IDEA\)')
  endif
endif

По сути, он позволяет мне определять ключевые слова, которые соответствуют разной подсветке (Todo и Debugназвания цветов).

Есть ли способ, которым я могу определить свои собственные схемы окраски и дать им имена?В частности, я хочу иметь 3 тега: TODO1, TODO2 и TODO3.Идея состоит в том, что TODO3 имеет более низкий приоритет, чем TODO1, и поэтому выделяется более светлым оттенком.

Если я не могу определить свою собственную раскраску, где я могу найти список названий цветов, которые я могу использовать?

1 Ответ

1 голос
/ 07 сентября 2011

Если вы не хотите использовать цвета темы по умолчанию, вот решение:

" Define autocmd for some highlighting *before* the colorscheme is loaded
augroup VimrcColors
au!
  autocmd ColorScheme * highlight ExtraWhitespace ctermbg=darkgreen guibg=#444444
  autocmd ColorScheme * highlight Tab             ctermbg=darkblue  guibg=darkblue
augroup END

И позже (это должно быть после):

" Load color scheme
colorscheme yourscheme

Цветовые определения следуют формату:

autocmd ColorScheme * highlight <ColorName> ctermbg=<TerminalBackgroundColour> guibg=<GuiBackgroundColour> ctermfg=<TerminalFontColor> guifg=<GuiFontColour>

Где cterm цвета должны быть из предопределенного списка (для получения дополнительной информации см. :help cterm-colors). Цвета Gui могут быть любого цвета Hex.

...