lightline.vimでcolorschemeをあてたときに気に食わない色を修正する
TL;DR
タイトルのとおりです.
自分はvimのステータスラインをいい感じにしてくれるlightline.vimというプラグインを使っています.
いままでカラースキームにはsolarizedを使っていたのですが,ちょっと地味なので他にないかなと探していたところ,deusというカラースキームがかっこよかったのでそれを使い始めました.
しかし,今までNormalが青,Insertが緑でしたがdeusはNormalとInsertで逆の色だったのでなんか気持ち悪いなと感じてしまいました.
そこで,自分で色を設定して変えてやればいいじゃんと思い設定しました.
ちなみにvimscriptとかよくわからない人なので,こんなの当たり前じゃんと思われるかもしれませんがご容赦ください...
deusの色設定を見てみる
call dein#add('itchyny/lightline.vim)
でlightline.vimをインストールするとxxx/itchyny/lightline.vim/autoload/lightline/colorscheme
にdeusやsolarizedなどの色設定が書かれたvimscriptがあります.
まずはそのディレクトリまで行って目的のカラースキームを見てみます.(GitHubにも同じものを見ることが出来るのでそちらでも可)
... let s:p.normal.left = ... let s:p.normal.right = ... let s:p.insert.left = ... let s:p.insert.right = ... ...
なんかいろいろ書いてあります.例えばlet s:p.insert.left
であればInsertモードでの左側のステータスラインの色が指定してあります.
このことを念頭に置いて任意の色に変えていきます.
実際に任意の色を指定してみる
deusをあてたときのデフォルトの状態は下のような状態です.
自分にとってはかなり違和感がありますので逆にしてしまいましょう.
toml
で管理している場合はhook_add
,もしくはinit.vim
などに設定を書き加えていきます.
" deusのパレットを選択 " let s:palette = g:lightline#colorscheme#deus#palette " 色の定義 " let s:blue = 14 let s:green = 114 let s:black = 235 let s:white = 145 let s:gray = 236 " deusではNormalとInsertのleftは以下のような設定,この値をそのまま入れ替えてやればいい " "" let s:p.normal.left = [ [ '#292c33', '#98c379', s:term_black, s:term_green, 'bold' ], [ '#98c379', '#292c33', s:term_green, s:term_black ] ] "" let s:p.insert.left = [ [ '#292c33', '#61afef', s:term_black, s:term_blue, 'bold' ], [ '#61afef', '#292c33', s:term_blue, s:term_black ] ] " NormalとInsertの時の色を設定する " let s:palette.normal.left = [ [ '#292c33', '#8eb2f7', s:black, s:blue, 'bold' ], [ '#8eb2f7', '292c33', s:blue, s:black ] ] let s:palette.normal.right = [ [ '#292c33', '#8eb2f7', s:black, s:blue, 'bold' ], [ '#abb2bf', '#3e4452', s:white, s:black ], [ '#8eb2f7', '292c33', s:blue, s:black ] ] let s:palette.insert.left = [ [ '#292c33', '#98c379', s:black, s:green, 'bold' ], [ '#98c379', '#292c33', s:green, s:black ] ] let s:palette.insert.right = [ [ '#292c33', '#98c379', s:black, s:green ], [ '#abb2bf', '#3e4452', s:white, s:gray ], [ '#98c379', '#292c33', s:green, s:black ] ]
色の設定は左から
といった順で並んでいます.単に逆にしたいだけならNormalとInsertの中身をそっくりそのまま入れ替えてあげるといいです.
自分で任意の色にしたい場合は,その都度適切に値を入れていけば反映されます.
設定し終わって再度vimを起動すると以下のようになります.
無事ステータスラインの色を変えることが出来ました.
colorschemeの変数の意味が分かればタブラインなどの設定も出来たり,自作のカラースキームを使うことも出来るようです.