はじめに
既存の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=1 ColorScheme call ColorScheme(<f-args>)
function! ColorScheme(scheme)
execute 'colorscheme ' . a:scheme
try
execute 'colorscheme ' . a:scheme.'_after'
catch
endtry
endfunction
これで準備完了です。
追加用をafter/colors/
に配置する際は、ファイル名をオリジナル名+_after
へリネームします。
真/偽を強調するハイライト
例として、Go言語にて真/偽を強調する為のハイライトをdesert colorscheme用に作成してみます。
ファイル構成
.vim/after
├── colors
│ └── desert_after.vim
└── syntax
└── go.vim
各設定
" syntax/go.vim
syn keyword goNo false
syn keyword goYes true
syn match goNo /!=\?/ containedin=CONTAINED
syn match goYes /==\|!!/ containedin=CONTAINED
syn match goNoWrong /!==\|!!!/ containedin=CONTAINED
syn match goYesWrong /===/ containedin=CONTAINED
hi link goNo No
hi link goYes Yes
hi link goNoWrong Error
hi link goYesWrong Error
" colors/desert_after.vim
hi No guifg=#ff7777 guibg=#773838
hi Yes guifg=#9999ff guibg=#383888
あとはcolorscheme変更の際はColorScheme
コマンドを利用すればOKです。
まとめ
colorschemeは気に入ってるが少しカスタマイズしたい、て時に新たにcolorschemeを作るのは少々大げさになってしまいます。
本記事はcolorschemeもafterディレクトリへの差分設定だけで済ませる方法の紹介でした。