読者です 読者をやめる 読者になる 読者になる

lightline.vimでパッチフォントを設定した

前回の記事に近いモチベーションですが、後から同じことをやろうとした時に、なるべくすぐに思い出せるように、ということで書いておきます。

lightline.vimとは? といったことについては、以下をグルッと見回ったら必要十分な情報に触れられます。

とりあえずのサンプル設定というか、最小限の力でなんかそれっぽくしたい! と思ったら、その2番めの記事で紹介されている、

ステップ3: uniteやvimfiler、vimshellでなんかかっこよくなるよう設定する

のコードをそのままコピペ設定しましょう。私はそうしました。

で、ヤフー! カッコいい! と盛り上がったのですが、人間というのは欲で出来ているものなのか、今度は「あのよく見かける、横に三角に突き出ているステータスラインにしたい・・」という気になりました。

こういうやつ。
f:id:note103:20160316003425p:plain
via https://github.com/itchyny/lightline.vim#landscape-theme-with-the-patched-font

これを実現するためには、それ用のフォント(以下「パッチフォント」と呼びます)を作って、そいつを使うように設定しなければならず、うはー、それはメンドイ! と遠い目になって避けていたんですが、なんかでも「出来ないままっていうのも悔しい」という気分が徐々に高まってきてしまったので、玉ねぎの薄皮を剥がすように少しずつ調べを進めていったというか。

で、その設定方法じたいはlightline.vimのREADMEにもちゃんと書いてあって、

基本的には僕もそれを見ながらやったのですが、部分的にちょっと理解が追いつかないところがあって、その辺は以下のブログの説明で補いました。

幸いというか、僕もフォントはRictyを使っていたので、その点でもこれらの説明はとても参考になりました。ありがとうございます。

ただ、それらの説明を見てもわからなかったのがguifontオプションの設定で。

というのも、この今回生成したパッチフォントをVimに反映するには、vimrcに

set guifont=なんたらかんたら

と書かなくてはならず、これまではそこに、

set guifont=Ricty:h18

とか記述していたのだけど、それだと普通のRictyなので、それを今回作った特殊なRicty(パッチフォント)にしなければいけない。
でも、その正式なフォント名がはっきりしなくて、どう書いたらいいんだかわからず、どれを参照したら正解が載っているのかもわからず、とりあえず詰み。

で、しばらくダウンしてから起き上がってまたぐぐってみると、時々目にする方法としては

set guifont=*

と書いて実行(ファイル保存?)すると、フォント設定ダイアログ(対話型の設定画面)が出てくるから、そこから希望のフォントを選択したらいいんだよ、みたいに説明されていて、

※たとえば以下におけるその辺りの説明はとても丁寧で、本件に限らずいろいろわかりやすい。

たしかに実際、やってみるとそういう対話型設定画面は出てくるのだけど(そこで一旦小躍りする)、自分のMac環境だと、どうもそこで設定が完了しない(小躍りから醒める)。

もう少し具体的に言うと、その対話型の設定で希望のフォントを選択した瞬間には見事希望通りに反映されるのだけど(小躍りする)、その状態で定着・保存されないというか・・(小躍りから醒める)。

で、そこでまたグダーっとハマって、どうして同じような現象に遭遇する人が他にいないのだろう? つまりその辺の問題を解説してくれるブログ記事がないのだろう? などと地味に無責任な呪詛を吐きつつ、しかしめげずに、というかめげながら、そもそものパッチファイルを提供しているサイトのREADMEをあらためて読み直していたら、

For gvim users: Update the GUI font in your vimrc file:

set guifont=MyFont\ for\ Powerline

という記述があって、それをもとに

set guifont=Ricty\ for\ Powerline:h18

としたら、できた。

そんな経緯で出来た現時点でのステータスラインはこんな感じです。

f:id:note103:20160316172003p:plain

カラースキームは「seoul256」。右下にある「w96:h41」というのは、なぜか僕はいつもその時点のウィンドウサイズが非常に気になるので、常時出るようにこんなのを加えた次第でした。

function! LightLineWinform()
  return winwidth(0) > 50 ? 'w' . winwidth(0) . ':' . 'h' . winheight(0) : ''
endfunction

文字通りの見よう見まねで書いたのでしたが、冒頭に挙げた、作者 @itchyny さんによる解説記事(上から3番め)を見ながら作ったらちゃんと動作しています。
ちなみに同記事では、

lightline.vimでは, ユーザーにどんどん設定を書いてもらうという姿勢をとっています.
まず, カラースキームを変更することをユーザーに促し, 私の設定と称してそのままコピーしてもらいます.
そこから, 思い通りでないところはユーザーに編集してもらうのです.
それを通して, Vim scriptに慣れてもらうこと, Vimの設定をどんどん書いていく(つまり.vimrcの行数が長くなっていく)楽しさを感じてもらうことを目的としています.

とあるので、完全に想定どおりですね(笑)。率直に言って、大変楽しいです。

とはいえ、まだまだわからないところ、微調整したいところはあるので、継続してより自分の環境を作っていきたいところです。