日本の伝統色を使ったカラースキーム: Japanesque

GitHub - aereal/vim-colors-japanesque: The colorscheme featuring Japanese traditional colors.

https://raw.githubusercontent.com/aereal/vim-colors-japanesque/master/screenshots/ruby.png

日本の伝統色を使ったカラースキーム: Japanesque

GUI 版の Vim 向けカラースキーム・Japanesque を作った。

iTerm 2 で使えるカラースキーム、Japanesque を作った - Sexually Knowing

以前、iTerm 向けに作った同名のカラースキームを踏襲しつつ新たにパレットから作った。

コンセプトとしては:

  • 十分なコントラストが確保されていること
  • 着目すべき構文要素が適切に目を引くような配色であること

……とした。

インストール方法

" neobundle.vim
NeoBundle 'aereal/vim-colors-japanesque'
" Vundle
Bundle 'aereal/vim-colors-japanesque'
" vim-plug
Plug 'aereal/vim-colors-japanesque'

あるいは colors/japanesque.vim$VIMRUNTIME/colors/ 以下に配置するなど。

カラーパレット

https://raw.githubusercontent.com/aereal/vim-colors-japanesque/master/screenshots/palette.png

  • 紫紺
  • 菜の花
  • 銀鼠
  • 今様
  • 鬱金

……以上の9色を基本のカラーパレットとしている。

紫は、古来から高貴であるとされて尊ばれていること、カラーパレット上のどの色との相性がよいこと、寒色とも暖色ともつかず機能的に中立的であることなどから背景色として、カラースキームの方向性を決定づける役割を与えた。

カラーコードは引き続き NIPPON COLORS - 日本の伝統色 を参照している。

見やすいカラースキームを作る上で考えること

もともと Solarized の暗い背景モードの配色を気に入っておらず、カラースキームを作ることを考えていたところに上記の記事を読んで共感し、iTerm のカラースキームとして作って気に入っていた Japanesque を Vim 向けに一から作ろうと決めた。

カラーパレットを上記の通り決めて、次に構文要素にどのような色 (役割) を与えるか考える。

カラースキームは、ソースコードの注目すべき領域とそうでない領域を色で表現することで、理解を助けるはたらきがあると思う。つまり、ソースコード中でどのような要素に着目すべきか考えるとよさそう。

ソースコードに出現するトークン (識別子) は大きく分けて:

  • 言語組み込みの制御構造
  • モジュール化の仕組み
  • 再利用可能なコンポーネント
    • 例: クラス
  • ローカル変数

……のように分類できると考えてみる。

上から下に行くほど情報の凝集度が高まり、生存期間は短くなる。制御構造はプログラムの実行開始から終了まで消えることはないだろうし実質的に無限と考えられる。

情報の凝集度が高いほど重要なので、識別子としてより目立たせるという作戦を立てた。制御構造などのコントラストは下げ、ローカル変数やプロパティはコントラストを上げるという作戦にした。
Rubyスクリーンショットを見ると雰囲気は伝わると思う。

関連

課題

現時点では:

  • CLI 版のサポート
  • lightline.vim 向けカラースキームの追加

……が欠けているので対応しようと思っている。

他、優先度は高くないが色覚障害の対応状況はチェックしたい。

その他エディタへの移植リクエストやバグ報告などは GitHub の Issues にいただけると助かります。ほか Twitter でも。