LoginSignup
9
9

More than 5 years have passed since last update.

colorscheme にマッチした highlight 設定を追加する

Last updated at Posted at 2014-04-19

本記事は 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 * highlight def link CursorIM Search
    autocmd VimEnter,ColorScheme * highlight def link IdeographicSpace Visual
    autocmd VimEnter,WinEnter * match IdeographicSpace / /
  augroup END

例では CursorIM を Search (検索ワードのハイライト色) に、全角スペース定義 IdeographicSpace を Visual (Visual モード選択時の色) にリンクさせています。IM のほうはともかく、全角スペースはわりとそれっぽくなります。

そもそも全角スペースを表示するプラギンねーの?

という話題になったので、やってみました。

というより、ほぼ以下の記事のままです。

ドキュメントもない。すいません。

はい

以上 Vim Advent Calendar 2013 137 日目の記事でした、次回 138 日目は @manga_osyo さんのneobundle.vim でリポジトリ内の任意のディレクトリをプラグインとして読み込むでした。

9
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9