2011-08-04 20 views
3

私は最近基本的に、それは私が別のハイライト(藤堂とデバッグが色の名前です)と一致しているキーワードを定義することができます私の.vimrcvimでmatchadd()で使用するために私自身のハイライトカラーを定義する方法は?

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 

ためthis little piece of codeを見つけました。

自分で色分けして名前を付ける方法はありますか?具体的には、TODO1、TODO2、TODO3という3つのタグがあります。 TODO3はTODO1よりも優先度が低く、より明るい色合いで強調表示されます。

私は私が使用できる色の名前のリストを見つけることができます私自身のカラーリングを、定義することができない場合は?

+0

私はあなたを助けることができるかもしれない同様の質問に答えました。それは基本的に(あなたが使用しているcolorschemeの上に)あなた自身の一致する色を定義する方法を教えてくれます:http://stackoverflow.com/questions/6386085/vim-syntax-highlighting/6388100#6388100 – alfredodeza

答えて

1

あなたはここで、デフォルトのテーマの色を使用しない場合は、解決策は以下のとおりです。

" 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の色は任意の16進数の色にすることができます。

+2

あなたの 'if!exists( | 'var')| let var = 1 | ... | endifは自然に 'augroup vimrcColors | autocmd! | ... | augroup END'と呼ばれる。変数を取り消し、オートコマンドを手動で削除してリロードする必要がないという利点があります。 – ZyX

+0

アドバイスをいただきありがとうございます。私はいつかそれを見ましたが、私は利点を得ていませんでした。私はそれを試してみるつもりです! – Plouff

+0

@Plouff、ありがとうございました。おそらくZyXの提案で編集するかもしれませんか?私は彼が何を意味するのか本当に理解していない。 –

関連する問題