Windows版のGVimでフォントを指定するときは「guifont
」「guifontwide
」の二種類を指定する必要がある……というのを今日初めて知った。前者は半角、後者は全角のフォントを指定する。今までは前者しか指定してなかったので、全角文字についてはレジストリをいじってFontLinkを使うことで対処していた。
Windows 2000/XPのFont Link機能(Font Linking)の紹介
http://blue.ribbon.to/~akene/fontlink.htm
これでも機能的には十分なのだが、変更するのにレジストリエディタを起動するのは億劫だし、OSを再起動しないと有効にならないのが困りもの。でも、わざわざこんな苦労することなかったのだ。
Gvim on Windows: フォント設定: まじかんと雑記
http://magicant.txt-nifty.com/main/2009/03/gvim-on-windows.html
ここに詳細に書かれているのだが、指定すべきオプションは3つある。
guifont
-
半角フォントの指定。「
フォント名:オプション:オプション……
」の形式で指定する(オプションは省略可能)。フォント名には日本語名及び英語名が使えるが、日本語名の場合「set encoding=cp932
」環境じゃないと正常に動かない。英語名を使った方が無難。例:「MS ゴシック」→「MS_Gothic」
(空白を含む場合はこの例のようにアンダーバーを使えばよい。) その他のオプション hxx
「 xx
」にはフォントの高さを数字で指定する。wxx
「 xx
」にはフォントの幅を数字で指定する。b/i/u/s
それぞれ太字、斜体、下線付き、 打ち消し線付きを表す。cXX
文字セットを指定する。日本語環境では「 cDEFAULT
」以外を使う必要はないだろう。 guifontwide
- 全角フォントの指定。書式は
guifont
と同じだ。 ambiwidth
-
特殊文字の表示にどちらのフォントを使うか指定する。半角フォントならば「
single
」、全角フォントならば「double
」と書く。
最後のambiwidth
は少しわかりにくい。「特殊文字」というのはマニュアルによると「ユーロ、登録商標記号、著作権記号、ギリシャ文字、キリル文字など」とあるが、句読点や引用符も該当する。実際に文書を書くときに困るのはむしろこっちだろう。例えば以下のものが当てはまる。
‘’ | シングル引用符 |
---|---|
“” | ダブル引用符 |
… | 三点リーダー |
‥ | 二点リーダー |
この辺の文字が初期設定の「single
」では半角フォントで表示されてしまう。半角フォントがちゃんと対応するグリフを持っていればいいのだが、プログラミング向けのフォントとかだとこのような文字はばっさり切り捨ててある場合が多いので注意する必要がある。
以上を踏まえて、_gvimrc
に次のように書き込んだset encoding=utf8
」すると文字化け云々という記述があるが、少なくとも香り屋の最新版ではそのようなことはなかった。)
" フォント名に日本語名を使うので、一時的に文字コードを変える set encoding=cp932 set guifont=ProggyCleanTTSZBP:h12 set guifontwide=Osaka-等幅:h9 set ambiwidth=double " 文字コードを元に戻す set encoding=utf8
使用したフォントは以下の通り。
Proggy Programming Fonts
http://www.proggyfonts.com/WindowsでOsakaフォントを使おう!
http://osaka.is.land.to/
いろいろ試したけど、この2つの組み合わせが最強だ。Osakaフォントは定番中の定番だが、「Proggy」フォントの方はマイナーかも。今回使用した「Proggy Clean (Slashed Zero, Bold Punc)」フォントは、
- 「¥」の代わりにバックスラッシュ。(英語フォントだから当然)
- 「0」にスラッシュが入ってる。
- 記号類「’"(){}[],.;:」が常に太字。
というまさにコーディングのためのフォント。ただ、先に書いた三点リーダーなどの記号類は含まれていないのでambiwidth
オプションは必須だ。
今回はTrueType版を使っているのでClearTypeによるスムージングも行われている。そのため半角文字は薄い緑に見え、Osakaフォントの文字と区別が付くようになっている。単なる副作用だけどこれはこれで便利かもね。
Pingback: Gvimに様々なフォントを使用する Windows編 | 健巳創作