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されていないようだ。
もう少し待っても対応されないようであれば自分用パッケージを作ろうと思う。