隙あらば寝る

うぇぶのかいしゃではたらくえんじにあがかいています

gvimの表示がおかしいのを直した

tl;dr

vmwareで動かしているlinuxで、gvim利用中ctrl-l(再描画)をしたときに一部表示されないままになることがある。

これはXのビデオドライバの問題で、パッチを当てたドライバを使うと治る。

発端

gvimで編集中、ctrl-lで再描画するとなぜか一部表示されない。

いまいち再現率も微妙で、気持ち悪いまま使っていたが、重い腰を上げて調べ始めた。

すると、対象はemacsだったが似たような事象をまとめているページが見つかった。

Emacs redraw issue in X.org on VMWare and VirtualBox

同一の問題かどうかはXのログに以下の内容が出力されるかどうかで判断できる。

vmwgfx_scanout_update: failed to send dirty (-22, Invalid argument)

画面の表示がおかしくなった瞬間にこのログが1行出るので判断しやすかった。

手元の環境も該当しているようだ。

emacsであれば設定変更等で回避する方法もあるようだが、gvimで相当する操作がわからなかった。

ドライバの問題とのことでパッチを当てれば直るらしい。

これで直るならと試してみることにした。

ドライバの再ビルド

パッチをダウンロードし当てたソースツリーをビルド。

インストールしてからXの再起動をすると見事問題は消え去った。

とりあえず今はこれで満足したが、ちゃんとパッチを当てたドライバのパッケージを作っておきたい。

というか上流ではやくサポートしてくれないかな、まだacceptされていないようだ。

もう少し待っても対応されないようであれば自分用パッケージを作ろうと思う。