Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

本記事は 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 のほうはともかく、全角スペースはわりとそれっぽくなります。

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

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

https://github.com/0xBADDCAFE/vim-highlightIdeographicSpace

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

http://vim-users.jp/2009/07/hack40/

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

はい

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした