.vimrc再読み込みでエラー #19

Closed
sigwyg opened this Issue Aug 7, 2012 · 7 comments

Projects

None yet

2 participants

@sigwyg
sigwyg commented Aug 7, 2012

おつかれさまです。

症状

  • :source $MYVIMRC の実行時、エラーとなる
  • エラー後、一部のキーマップが利用不可になる(Uniteの「q」など)
  • エラー後、シンタックスカラーが消える
  • エラー後、:Unite output:message しても候補なしとなる。:message ではerror文が表示されている。
  • :source $MYVIMRCとかしなければ、通常の:NeoBundleInstallなどは問題なく使える。

再現

  • call neobundle#rc(expand('~/.vim/bundle')) が if has('vim_starting') {} の外にあると起こる
  • Mac OSX Lion で確認
  • /usr/bin/vim, MacVim Kaori-Ya 双方で確認
  • プラグインがneobundle.vimだけでも起こる。

週末にSnow LeopardからLionにアップデートし、気付いたのが月曜となります。
それまでは特に問題は生じていなかった... 今はneobundleを3ヶ月前のVer.まで戻しても再現する。
vimprocは昨日8/6時点で最新のものでビルド済み。

error文 (最小構成のとき)

function neobundle#config#bundle..neobundle#config#init_bundle の処理中にエラーが検出されました:
行    6:
E117: 未知の関数です: neobundle#installer#error

上記は、.vimrcが下記のみのときのerror文
プラグインそのものは、/bundle/下に存在する。

set nocompatible
filetype off
filetype plugin indent off

if has('vim_starting')
    set runtimepath+=~/.vim/bundle/neobundle.vim
endif
    call neobundle#rc(expand('~/.vim/bundle'))

NeoBundle 'git://github.com/Shougo/neobundle.vim.git'

filetype plugin indent on

error文 (通常時)

function neobundle#config#bundle..neobundle#config#init_bundle の処理中にエラーが検出されました:
行    6:
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
E117: 未知の関数です: neobundle#installer#error
/Applications/local/MacVim-kaoriya.app/Contents/Resources/vim/runtime/syntax/synload.vim の処理中にエラーが検出されました:
行   19:
E185: カラースキーム jellybeans がみつかりません
割込まれました
/Applications/local/MacVim-kaoriya.app/Contents/Resources/vim/runtime/syntax/syntax.vim の処理中にエラーが検出されました:
行   19:
割込まれました
/Users/sigwyg/.vimrc の処理中にエラーが検出されました:
行  121:
割込まれました
  • 「E117: 未知の関数です: neobundle#installer#error」の数はプラグインの数?
  • 「jellybeans がみつかりません」とあるが、別のカラースキームでも同様

よろしくお願いします m(__)m

@Shougo
Owner
Shougo commented Aug 7, 2012

原因がおおよそ分かりました。

おそらく、neobundle#rc()を読んだ時に、neobundle.vimのパスを除外してしまっているのでしょう。
neobundleそのものをneobundleで管理しているのでこういったことが起こります。
今まで問題が発覚しなかったのは、.vimrcを再度読み込むまでに該当スクリプトをロードしていたからだと思います。
何か対策を検討します。

@Shougo
Owner
Shougo commented Aug 7, 2012

修正しました。こちらで再現が出来なかったので、これできちんと治っているか確認できていません。
neobundleを更新して試してください。

@sigwyg
sigwyg commented Aug 8, 2012

一時期vitalのエラーとか出て焦りましたが、git cloneで入れ直したところ、どうやら直ったようです。
ありがとうございます!

neobundleのneobundle管理は今後も非推奨な感じでしょうか?

あと、neobundle#rc() はif has('vim_starting') {} の中と外、どちらに入れるのが望ましいのでしょうか。
Readmeでは中に、ヘルプでは外に書かれていますよね。ヘルプのほうが新しいと思っていますが...

@Shougo
Owner
Shougo commented Aug 8, 2012

一時期vitalのエラーとか出て焦りましたが、git cloneで入れ直したところ、どうやら直ったようです。
ありがとうございます!

了解です。おそらく、自分自身をアップデートしようとしたからでしょう。

neobundleのneobundle管理は今後も非推奨な感じでしょうか?

気持ちは分かりますが、あまり推奨はしません。なぜなら、vitalでこけるように、自分自身をアップデートしようとすると微妙な問題に遭遇するためです。

あと、neobundle#rc() はif has('vim_starting') {} の中と外、どちらに入れるのが望ましいのでしょうか。
Readmeでは中に、ヘルプでは外に書かれていますよね。ヘルプのほうが新しいと思っていますが...

外のほうが望ましいです。なぜなら、neobundle#rc()はruntimepathをリセットするためです。
if has('vim_starting')の中に書いていると、runtimepathがリセットできません。
結果、削除したNeoBundleが読み込まれたまま、ということになってしまいます。

@Shougo Shougo closed this Aug 8, 2012
@sigwyg
sigwyg commented Aug 8, 2012

はい。諸々ありがとうございました! 留意しておきます。

@Shougo
Owner
Shougo commented Aug 8, 2012

:-)

@Shougo
Owner
Shougo commented Aug 8, 2012

本日、neobundleからvitalを除外しました。
おそらく今回のようなアップデート時のエラーは起こりづらくなったはずです。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment