Closed hao-lee closed 3 years ago
verbose set omnifunc?
看看是被哪里改动了
改动者是 /usr/share/vim/vim82/ftplugin/c.vim
" Set completion with CTRL-X CTRL-O to autoloaded function.
if exists('&ofu')
setlocal ofu=ccomplete#Complete
endif
有什么解决办法没...
我这边不会出现, 你可以先用这个处理一下, 有空我再研究下有什么好方法
augroup XXX
autocmd!
autocmd FileType *
\ if ZFVimIME_started()
\| setlocal omnifunc=
\| endif
augroup END
好的,多谢,这个问题很诡异的,摸不清复现步骤,但是我感觉问题出现一般是我开了多个标签,然后在里面快速的切来切去时,然后停在某个标签里开始打字,就有可能出现这个问题,每当问题发生时我的光标处会被插入ZFVimIME_callOmni
这样的文本。
提交了个东西, 你更新下试试? 懒得装 ycm 验证了
因为 lmap 是 buffer local 的, 所以 buffer 切换的时候自动开关了一次, 来确保输入状态和全局同步
然后又因为 b:keymap_name
需要延迟才能更新, 之前偷懒就直接延迟来重启了, 可能和这个延迟有关系
好的,多谢,我用几天不出现问题就来反馈
我的vim是配置了YCM的,写C时使用的补全函数是
ccomplete
,切成输入法就是ZFVimIME_omnifunc
,一般不会出问题,但是还是会偶尔遇到问题,这问题由来已久,我一直没报就是想找找复现步骤,但是我失败了,只能描述一下现象。问题发生时状态栏显示当前的模式为
-- INSERT (lang) --
,当我按下键进行输入时,状态栏显示=ZFVimIME_callOmni()
,然后C语言函数补全列表就弹出来了,此时查看omnifunc
的值是ccomplete
。如果我手动将omnifunc
改回去,那就可以继续用。不晓得这是个什么问题。