Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

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

$
0
0

本記事は 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 でリポジトリ内の任意のディレクトリをプラグインとして読み込むでした。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>