知っている人は知っていると思うけど、実はこの手のプラグインはすでに何個かある。と言うか今回のこれも実は最初は既存のをちょっと直しただけのものだった。経緯を書くと、
- zoom.vim : 「+」、「-」キーで文字の大きさを変更 — 名無しのvim使い の存在を知る。 (今年の1月ごろ)
- が、使ってみたら動かなくて、ソースを見てみたら実装があまりにもアレだったので書き直した。
- 公開しようかとも思ったけど、実装部分は丸々書き換えたけどインターフェースやプラグイン名はそのままだったのと、元のスクリプトのライセンスが不明で確認するのも面倒だったので放置。
- そして…11か月の月日が流れた…。
- 最近になってこういう話題を見てふと思い出して、なんとなくソース眺めてた。
- 気付いたらコマンド名が :Fontsize に変わって使い方も変わっててプラグイン名も fontsize.vim になってた。
- 元々実装部分は完全に別物でこれでプラグインとしては完全に書き直したものになったので、これで公開してしまおうかなぁと思った後類似のスクリプトがないか確認してみた。
- そしたらなんかいっぱい出てきた…。
- guifont++.vim - Vim plugin for quickly changing GUI font size : vim online
- fontsize - Adjust Gvim font size via keypresses : vim online
- これに至っては名前まで一緒…。しかも公開されたの最近だし。やられた。
- quickfonts.vim - quickly switch between a list of favorite fonts, manage list of favorite fonts : vim online
- これはちょっと趣旨が違って予め登録しておいたフォントを切り替えるものだけど、サイズ違いのフォントを登録しておけば似たようなことはできる。
- Change font size quickly - Vim Tips Wiki - Wikia
- これは Tips。
- おいおい、みんな考えることは同じか。こんだけあるし同名のもあるし、今更私が公開する意味あるのか?
- いまここ
とは言ったものの
私の作ったバージョンにもアドバンテージはある。
[count] が使える
少なくとも私の見つけたスクリプトでは [count] が使えなかった。つまりフォントサイズは1ptずつしか変化させられない。私のは 10+ とかやると 10pt 大きくなる。
'lines' と 'columns' を記憶する
既存のスクリプトは初期フォントサイズを記憶して元に戻す機能まではあるが、それだと微妙に問題がある。
フォントサイズを非常に大きくしてディスプレイサイズより大きくなると Vim は代わりに 'lines' と 'columns' を減らして画面内に収まるサイズに調整する。そのままフォントサイズだけ元に戻してもウィンドウは小さくなってしまう。
私はこれが耐えられなかったので、'lines' と 'columns' も保存してリセット時に復元するようにした。
フォントサイズ変更後に 'lines' と 'columns' を自分で変えてた場合は余計なお世話なんだけど、今まで使ってたの自分だけだったので今のところ特に対策してない。
てわけで
リリースするとしても、quickrun.vim の経験があるので、同名スクリプトのリリースは避けたい。でも他にいい名前も思いつかないんだよなぁ。プラグイン名変えたら当然コマンド名も変わるだろうし。
と言うかそもそもこれ欲しい人居ますかね? 居ないなら面倒なのでこのままお蔵入りかなぁ。
インターフェース
万が一欲しい人がいたときのために念のため一応簡単にちょろっとインターフェースの説明。
コマンドは :Fontsize だけで、 :Fontsize +N :Fontsize -N でサイズ増減、:Fontsize N でサイズ直接指定で変更、:Fontsize で現在のサイズを表示、:Fontsize! でリセット。後は [count] も使える named key mapping が定義してある。で、デフォルトでは + と - がそれらに割り当ててある。
追記: 公開しました。
http://d.hatena.ne.jp/thinca/20091226/fontzoom
http://github.com/thinca/vim-fontzoom