26 howm-mode.vim (2-7) プレビュー時のちらつき防止

今回からタイトルの書き方を変えてみた。タイトルで内容が分かった方がいいなと思った。あと、名無しのVIM使いさんとこのリンク集に追加されていた。ここのところ文法解説してなくて、すいません。また Dictionary とか見ます。

さて、howm-mode.vim プレビュー時のちらつき修正について。 g:howm_instantpreview を真にしていると、 CursorHold のタイミングで動いている ShowPreview() が updatetime=1 なので、すごく頻繁に呼ばれてちらつく。それに重い。カーソルを左右に動かしただけで、ShowPreview() が動き、ちらつく。不愉快なので、行を移動したときのみに限定することにした。

function! s:ShowPreview()
  if exists('b:lastPreviewLine') && (b:lastPreviewLine == line('.')) | return | endif
  let b:lastPreviewLine = line('.')
  " ...
endfunction

2行追加しただけのお手軽変更。現在の行を b: 変数に入れておいて、それで行を移動したか判別して、無駄な再読み込みを防いでいる。その場しのぎの変更なので、別の方法を探すべきかもしれない。とりあえず、若干マシな動作になったので満足してる。