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

syntax/colorsのafterに差分の独自ハイライトを追加する

$
0
0

謝辞

すみません、ほんとはGVimのウィンドウ群とchannelで作るブロック崩しを公開する予定でしたが、間に合いそうにないので代替の投稿をさせていただきます。

作成中

はじめに

既存のcolorschemeやsyntaxに差分のカスタマイズ設定を追加する方法を紹介します。

afterについて

Vimで読み込まれる設定ファイルはruntimepathにより設定されており、afterは設定の追加読み込み用途として末尾に設定されています。

Windowsの場合
(略),$VIM/vimfiles/after,$HOME/vimfiles/after

独自ハイライトを追加するために、今回はこのafterディレクトリに差分のsyntaxやcolorschemeを置いて対応してみます。

afterに置くcolorschemeについて

追加用のcolorschemeはafter/colors/ディレクトリに配置するのですが、オリジナルと同名のままではafter/colors/側だけが読み込まれオリジナルは読み込まれなくなってしまいます。
対策として、両者それぞれを読み込む独自コマンドをvimrcに追加します。

" vimrc
command!-nargs=1ColorSchemecallColorScheme(<f-args>)function!ColorScheme(scheme)
  execute 'colorscheme '.a:schemetry
    execute 'colorscheme '.a:scheme.'_after'catchendtryendfunction

これで準備完了です。
追加用をafter/colors/に配置する際は、ファイル名をオリジナル名+_afterへリネームします。

真/偽を強調するハイライト

例として、Go言語にて真/偽を強調する為のハイライトをdesert colorscheme用に作成してみます。

設定後は下記のような見た目になります。
hilight.png

ファイル構成

.vim/after
├── colors
│   └── desert_after.vim
└── syntax
    └── go.vim

各設定

" syntax/go.vimsyn keyword goNo false
syn keyword goYes true

synmatch goNo /!=\?/ containedin=CONTAINED
synmatch goYes /==\|!!/ containedin=CONTAINED
synmatch goNoWrong /!==\|!!!/ containedin=CONTAINED
synmatch goYesWrong /===/ containedin=CONTAINED

hi link goNo No
hi link goYes Yes
hi link goNoWrong Error
hi link goYesWrong Error
" colors/desert_after.vimhi No guifg=#ff7777 guibg=#773838hi Yes guifg=#9999ff guibg=#383888

あとはcolorscheme変更の際はColorSchemeコマンドを利用すればOKです。

まとめ

colorschemeは気に入ってるが少しカスタマイズしたい、て時に新たにcolorschemeを作るのは少々大げさになってしまいます。
本記事はcolorschemeもafterディレクトリへの差分設定だけで済ませる方法の紹介でした。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



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