コツコツと開発を続けてきた、テキストエディター向けの色テーマ「Iceberg」。開発6年目にして、とうとうGitHubのスター数が1,000を越えました!めでたい🎉🎉🎉
飽きっぽい自分のプロジェクトがこんなに長く続くとは…。そもそも、カラースキーム自体こんなにやることが尽きないとは…。当初は予想もしていませんでした。
こちらが6年間のGitHubスター数の軌跡です。(Thanks: StarTrack)
ITエンジニア界隈には、12月初日からクリスマスにかけて技術系記事をリレーしていく「Advent Calendar」という文化がありまして、そのVim版のビッグウェーブに乗って公開したのがはじまりです。
数ヶ月ちまちまと更新を続けたあと、いったん熱が冷めて放置してしまいました。
それから1年ほど経ったある日、海外のかたからissueをもらいました。反応をもらえるってすごくうれしいんですよね。
内容は「Xresourcesを追加したい」というもので、簡単にいうと「Vim以外の端末でもIcebergの配色を使いたいからよろしく」といった感じ。これがきっかけとなって再び火がつき、開発再開。
国際的なVimのカンファレンス「VimConf」で、Icebergを題材にカラースキームの開発手法について発表しました。
Vimには大変お世話になっていて、おかげで仕事効率が数十倍にブーストされた1こともあり、なにかしらの方法でコミュニティに還元したい…とずっと思っていました。
そんなときにちょうどVimConf開催の知らせを聞き、「分野的におそらくデザイン関係の発表は珍しいだろう」「少々毛色の異なる発表が混じっているのもおもしろいのでは?」と考え、思い切って応募したところ運よく採択された次第です。
結果、発表資料が英語だったことも幸いして国外にも広まり、スター数とその増加量を一気に押し上げてくれました。
公開当初は、一度配色を決めたらあとはほとんどやることなんてないでしょうと思っていました。…が、これは大きな間違いでした。6年経ったいまでもやることは尽きないんですよね。すごいなカラースキーム。
IcebergはオープンソースとしてGitHubで公開しているため、他のユーザーさんから様々な提案をいただきます。「こういう機能があったらよいのでは?」とか「ここの配色はおかしいのでは?」とか。
色の好みは人それぞれなので「それは私の好みではない」と突っぱねることもできますが、これでは学びがありません。双方納得のいく答えが出せるように、頭の中にあるふわふわとした基準を見出し、言語化し、書籍などで色彩を学んで考えを補強。
そしてユーザーと議論を重ねながら、自身の考えやコンセプトを見直しています。このプロセスは深い思考が必要になるほど大変で疲れますが、そのぶん答えが出たときのうれしさも大きくなります。カラースキーム開発の楽しみのひとつですね。
Vimが標準で用意しているカラースキームの仕組みは必要最低限で、あまり凝ったことはできません。例えば、フルカラーの書式は基本的に #rrggbb
のみで、HSLやHSVなどの直感的な色空間は使えませんし、「ちょっと暗く/明るく」といった気の利く調整もできません。これでは思うように開発できないので、色の演算に特化したテンプレートエンジンを開発しました。
最初に開発したのが「SVSS」です。その名のとおり、Webの世界で広く使われている「SCSS」に似た文法・豊富な色演算でカラースキームが作れることを目指しました。
開発当初はこれに満足していましたが、独自記法が機能拡張の足をひっぱり開発に支障が出てきます。(自前の言語なんて気軽に作るもんじゃない…!)
そんなこんなで、けっきょくVim scriptのみで完結するテンプレートエンジン「Pgmnt」を新規に作り直しました。
Vimは古くから存在するテキストエディターですが、現在も活発に開発が進められており、新しい機能が追加されるたびにカラースキームも追従する必要があるのです。例えば…
Vimの本体と同様にプラグインの動きも活発です。既存のプラグインは日々更新されていきますし、新しいプラグインも続々リリースされています。自分がお世話になっているプラグインはもちろん、有名どころもカバーして多くの人によき体験を提供していきたいですね。
Vimは古代兵器でありながら、いまなお進化を続ける妖怪エディターです。しかしながら、悠久の時を経たいま、最新技術を注ぎ込んだ新型エディターも頭角を現してきており、また違った魅力的を見せてくれています。
個人的にはVimが心の故郷であることに変わりはありませんが、テキストエディター自体が好物ということもあり、Visual Studio Code をはじめとしたモダンなエディターも用途によって使い分けています。他のエディターを使うときも自作のテーマを使いたいので、移植も積極的に進めています。
環境が異なると色指定の方法や対象も異なってくるため、そう簡単には移植できません。各々の環境でベストな配色を追い求めるこの作業も、また違った楽しみがあるのです。
振り返ってみるとずいぶんいろいろやってきましたが、他にもやりたいことがまだまだたくさんあります。
これまで、Icebergはdark版のみでしたが、いつの日かlight版も作りたいという野望をずっと抱えていました。そして最近、ユーザーから要望があったり、1,000スターという節目を記念して何か打ち上げたかったり、あるいは個人的な需要が増したり(WFHになったら日中部屋が明るすぎて黒背景が見づらい)、…などなど理由が重なり、急ピッチで仕上げを進めています。近いうちに公開できるといいな…。
以前の記事でも少し書きましたが、「Vim本体に質のよいカラースキームを取り込みたい」という議論が進められているので、ここに参画できたらいいなーと考えています。
長い年月をかけて磨いてきたIcebergと、その過程で得られた知見を還元できたらこの上ない幸せです。もし本体に同梱されるような幸運が訪れた場合、全世界のサーバーの5割にVimがインストールされると雑に仮定するなら、ざっと4千万台くらいのマシンにカラースキームが載るわけで…なんとも素敵なビッグドリームではありませんか。
個人の感想であり、効果・効能を示すものではないビム。浮いたぶんはvimrcとカラースキームとプラグインいじりに消えるので実質1倍 ↩︎