osyo-manga / vital-over

18 stars 3 forks source link

起動した時に画面が一瞬ちらつくのをどうにかしたい。 #107

Closed osyo-manga closed 9 years ago

osyo-manga commented 9 years ago

どうにかしたい。

確認環境

ちらつく

haya14busa commented 9 years ago

あーこれって gvimですかね. こちらではCUIだとちらつかない気がする

osyo-manga commented 9 years ago

再現したのは GUI 版です。 (Vim 本体を更新したら再現するように鳴った気がしないでもない by 7.4.540

osyo-manga commented 9 years ago

いい加減これをどうにかしたい

haya14busa commented 9 years ago

原因究明したさですね...

osyo-manga commented 9 years ago

これ、真面目に調べてみたんですが原因がやっとわかりました。 :digraphs をキャプチャしようとすると何故か画面が再描画されるようです。

再現コード

" このコードを :so % すると一瞬画面がちらつく
function! s:capture(cmd)
    let verbose_save = &verbose
    let &verbose = 0
    try
        redir => result
        execute "silent!" a:cmd
        redir END
    finally
        let &verbose = verbose_save
    endtry
    return result
endfunction

call s:capture(":digraphs")

対策

今のところ不明。 出力が多いのが原因かと思ったんですが、同じく出力が多い :function:map では再現しませんでした。 とりあえず、消極的な解決方法としては Modules.Digraphsdisconnect() しておくぐらいでしょうか…。

osyo-manga commented 9 years ago

他の方に確認してもらったのですが Windows Vim 7.3.1314 だとちらつかなかったようです。

osyo-manga commented 9 years ago

再現環境まとめました。Windows だと再現しないぽい感じです

osyo-manga commented 9 years ago

と、思ったら手元の Windows Vim 7.4.475 で再現してしまった…。

haya14busa commented 9 years ago

おおー原因究明めでたい :tada: ただ手元のlinuxではcui/guiともに上記のcaptureのコードでは再現しませんでした...

解決方法としてはこれも消極的ではありますが,起動時にcaptureするのではなく, <C-k>を押した時に初めてcaptureするのが筋がいいかなと思います

haya14busa commented 9 years ago

:so %では再現しませんが, vital-over使用時にちらついてるのはgvimでは再現してたのでPRしましたっ

osyo-manga commented 9 years ago

ただ手元のlinuxではcui/guiともに上記のcaptureのコードでは再現しませんでした... :so %では再現しませんが,

むむむ…。上記の再現スクリプトだとまだ不十分なのかな…。 とりあえず、解決はしたぽいので閉じます。 ありがとうございました。

haya14busa commented 9 years ago

解決便利 :tada: