vim-jp/issues — Issue #100: neocomplcacheで補完候補がないときにチラつく
Author: Shougo
Created: 2011-12-01 06:25:51+00:00
State: open

これは前にも（おそらくvim-jp MLあたりで？）報告したのですが、Kaoriyaさんがもう一度出してくれということなので再度報告しておきます。

neocomplcacheの自動補完の呼び出しで、補完関数の候補がなかった場合、普通に呼び出すと表示がチラついてしまいます。

そのチラつき具合は、let g:neocomplcache_enable_prefetch=0とすると体感できると思います。
これはautocomplpopにもある問題で、補完を呼ぶと候補のあるなしにかかわらず「-- User defined completion()」が表示されてしまうからです。しかもこの状態では補完モードに遷移しているため、pumvisible()が1になってしまいます。
自動補完の場合、候補がないのに勝手に遷移され、しかもチラつくとなるとユーザーにストレスがかかります。

もともと、Vimの補完は自動で呼ばれることは想定されていません。だからこのような挙動になるのだと思います。
手動補完の場合、候補のあるなしにかかわらず補完モードに入るのは当然でしょう。
ただ、それは自動補完では問題になるので、何か良い方法があると良いです。

例えば、私が昔提案していた方法だとで のように補完を呼び出したとき、メッセージが表示されないようにする、という方法です。これよりはもっと良い方法が考えられるような気がしています。