Closed jdhao closed 3 years ago
set runtimepath
并不会立即执行插件的代码
建议在 autocmd User ZFVimIM_event_OnDbInit
或 autocmd VimEnter *
中注册词库
function! s:init()
let db = ZFVimIM_dbInit({
\ 'name' : 'jd_db',
\ })
call ZFVimIM_cloudRegister({
\ 'mode' : 'local',
\ 'dbId' : db['dbId'],
\ 'repoPath' : expand('~/scratch_dir/'),
\ 'dbFile' : 'pinyin.txt',
\ })
endfunction
autocmd User ZFVimIM_event_OnDbInit call s:init()
我更新下文档, 感谢反馈
不科学啊,我看你这个 ZFVimIM_dbInit 函数是在 plugin 目录下定义的,然后 plugin 目录是会被默认加载的,所以这个函数应该是存在的啊,为什么会提示 unknown 呢。
另外我进入 nvim,虽然提示这个错误,我使用 call 也是可以调用这个函数的。
这是正常的行为, 添加到 runtimepath 并不会在 source vimrc 时立即执行, 有兴趣你可以试试:
some_path/
test/
plugin/
test.vim
vimrc.vim
" vimrc.vim
autocmd VimEnter * echom 'vim enter'
echom 'main entry'
set rtp+=some_path/test
echom 'main exit'
" test.vim
echom 'plugin'
执行顺序是:
main entry
main exit
plugin
vim enter
另外, autoload
可以处理这种问题, 但个人不太喜欢这种方式 (主要还是懒)
确实是这样的,之前没碰到这种问题,我以为添加到 runtimepath 以后,plugin 目录下的函数都可以立马使用了。
如题,使用下面的配置文件:
runtimepath 设置的是两个插件安装的位置,然后使用
nvim -u init.vim
启动,提示: unknown function: ZFVimIM_dbInit。但是在 nvim 里面,重新 source 这个配置
:so init.vim
,就不会报错了。后续可以正常使用 ZFVimIM