本記事は Vim Advent Calendar 2013の 137 日目です。
136 日目は @manga_osyo さんのVim script で関数のデフォルト引数を設定したいでした。
highlight を追加したい場面
Vim で日本語を扱う上で便利な設定、例えば IM が有効になっている場合にカーソルの色を変えたり、全角スペースを表示させたりするような設定はおよそ highlight 設定を用いてなされる場合が多いです。
augroup UsingJapanese
au!
autocmd ColorScheme * highlight CursorIM guibg=Purple guifg=NONE
autocmd VimEnter,ColorScheme * highlight IdeographicSpace term=underline ctermbg=DarkGreen guibg=DarkGreen
autocmd VimEnter,WinEnter * match IdeographicSpace / /
augroup END
highlight 設定なので colorscheme を変更した際に削除されないよう autocmd ColorScheme
設定で行いますが、変更する色は固定なのでどの colorscheme でも同じ色にしか設定できません。
解決策
既に定義されている highlight 定義と link して設定します。
まず :hi
して既存の定義一覧を確認して、よさ気な色を探します。
見つけたら、highlight def link
します。
augroup UsingJapanese
au!
autocmd ColorScheme * highlightdef link CursorIM Search
autocmd VimEnter,ColorScheme * highlightdef link IdeographicSpace Visual
autocmd VimEnter,WinEnter * match IdeographicSpace / /
augroup END
例では CursorIM を Search (検索ワードのハイライト色) に、全角スペース定義 IdeographicSpace を Visual (Visual モード選択時の色) にリンクさせています。IM のほうはともかく、全角スペースはわりとそれっぽくなります。
そもそも全角スペースを表示するプラギンねーの?
という話題になったので、やってみました。
https://github.com/0xBADDCAFE/vim-highlightIdeographicSpace
というより、ほぼ以下の記事のままです。
http://vim-users.jp/2009/07/hack40/
ドキュメントもない。すいません。
はい
以上 Vim Advent Calendar 2013 137 日目の記事でした、次回 138 日目は @manga_osyo さんのneobundle.vim でリポジトリ内の任意のディレクトリをプラグインとして読み込むでした。