メモの日々


2016年12月13日(火) [長年日記]

[vim] Vim 8でフォントを綺麗に表示する

Vim 8で追加されたWindows での DirectX サポート機能を試したら、フォントが綺麗に表示されるようになったのでメモ。

VimはKaoriYaで配布されているもののGUI版を使う。バージョンは8.0.82。

renderoptionsオプションの設定

renderoptionsオプションを設定すると、テキストレンダリングにDirectXを使えるようになる。renderoptionsオプションはパラメータが色々あって難しいのだけれど、

:set renderoptions=type:directx,renmode:5

と設定することでまあ満足な表示になった。

が、この設定だけだと駄目で、以下の設定も行った。

UTF-8化

renderoptionsのヘルプのdirectxの項に

MS-Windows の Vista 以降のバージョンで 'encoding' が "utf-8" である必要がある。

とある通り、エンコーディングをUTF-8に設定する必要がある。KaoriYa版のデフォルトのエンコーディングはcp932になっているようだけれど、 switches\catalog にある utf-8.vim を switches\enabled に移動すればエンコーディングをutf-8に変更できる。

ここまでで、renderoptions未指定だと

画像の説明

という感じだったのが、renderoptionsを上記のように設定すると

画像の説明

という感じになる。下が綺麗かは微妙だけれど、字が太くなった!

guifontオプションの指定

GVimのデフォルトのフォントはMSゴシックのようだが、これをConsolasを使うようにしたい。Consolasには和文用にMSゴシックをリンクする設定を別途行っている(フォントのリンクについての説明は割愛)。

フォントはguifontオプションで設定する。cXXやqXXは何を設定すべきかわからないので未指定とし、

:set guifont=Consolas:h12

と設定すると、

画像の説明

となった。日本語の表示が崩れてしまう。

guifontwideオプションの指定

GVimにはguifontwideというオプションもあるのでこれを指定してみる。

:set guifontwide=MS_Gothic:h12

と設定すると、

画像の説明

となった。うん、これでいいのではないだろうか。

IME動作時の表示が変

未解決の問題があって、漢字変換中に表示される文字の見栄えが確定後の見栄えと違ってしまって違和感がある。

画像の説明

見栄えは妥協したとしても文字幅が変わっちゃうのは困るよなあ。

追記

KaoriYaさんに解説記事が出ていたのでメモ。