NeoBundleのアップデート
関連のあるアップデートはNeoBundleのこのアップデート。
Disable autoload function feature in vim_starting · Shougo/neobundle.vim@b035e8b
autoload
に関してvim_starting
のとき(最初に.vimrcを読み込むとき)
に読み込みを避ける様になった変更。
これまでは実はこれが無かったのでNeoBundleLazy
で
autoload
化してても起動時に読み込まれていたものがあったので、
それもきちんと後読みする様になった、と言うこと。
ひっかかった問題の設定
このアップデート後に問題を出したのは vim-submode というプラグイン。
Probrem at autoload when NeoBundleLazy is used · Issue #409 · Shougo/neobundle.vim
1 2 3 4 5 |
|
こんな感じでNeoBundleLazy
を使ってautoload
化し、
submode
というコマンドが呼ばれた時に初めて読み込まれる様(と思った設定に)にしていました。
ただ、このプラグインの使うにあたってsubmode#enter_with
等、
このプラグインの中の関数を.vimrcの中で呼んでいます。
ですので、プラグインが読み込めて無ければそもそもこの関数は呼べないわけで、
呼べてた以上、実はこの関数に関する部分はautoload
化しても読んでた訳です。
これが、NeoBundleの上記のアップデートで正しく後読みする様になったので、 結果的に関数が.vimrcを読む時には定義されていない状態になって、 上の関数を呼ぶ時に
Error detected while processing /home/user/.vimrc:
line 1561:
E117: Unknown function: submode#enter_with
line 2012:
E117: Unknown function: submode#enter_with
Press ENTER or type command to continue
みたいなエラーを出すようになりました。
.vimrcの訂正
この様なプラグインに対して、上のissueの中でも作者の人に言われてるように、
単にNeoBundleLazy
のautoload
を使うべきではない、
というだけです。
ですので、
1 2 3 |
|
と、通常のNeoBunblde
で普通に呼ぶようにするだけ。
同じような問題に当たってる人も居るみたい
1
なので、
Unknown function
なエラーが出る様になった人は
見てみるとautoload
を使うべきでない所(特に.vimrcの中でそのプラグインの関数を使ってる)で
使ってる可能性が高いのでチェック。