rcmdnk's blog

Posted in Computer Tagged as Markdown, Vim

VimでNeoBundleのアップデートに伴いプラグインのデフォルトブランチをmasterに変更 #Vim #Markdown

Vim script テクニックバイブル ~Vim使いの魔法の杖

Vimのプラグインマネージャーの NeoBundle をアップデートした所、 少し.vimrcの書き換えが必要だったのと、 プラグイン側でのレポジトリのブランチに変更を加える必要があったのでそれについて。

スポンサーリンク

neobundle#rc() is deprecated function.

ちょっと.vimディレクトリの中で直接色々プラグインをいじっていて 汚してしまったので、一度.vimディレクトリを消して 新たにプラグインを入れなおしました。

その際、 NeoBundle もアップデートされて、アップデート後

[neobundle] neobundle#rc() is deprecated function.
[neobundle] It will be removed in the next version.
[neobundle] Please use neobundle#begin()/neobundle#end() instead.

と言うメッセージが出る様になりました。

そこでヘルプに従って、

.vimrc.diff
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
diff --git a/319e0fd636f52642995e36eb4e39caf1331ad71e:.vimrc b/master:.vimrc
index e3818d6..75ca38b 100644
--- a/319e0fd636f52642995e36eb4e39caf1331ad71e:.vimrc
+++ b/master:.vimrc
@@ -52,7 +52,7 @@ if s:use_neobundle && v:version >= 703
     let s:neobundle_enabled=1
   endif

-  call neobundle#rc(g:bundledir)
+  call neobundle#begin(g:bundledir)

   """"plugins"""""

@@ -481,15 +481,12 @@ if s:use_neobundle && v:version >= 703
   NeoBundleLocal ~/.vim/local/bundle
   """"plugins end"""""

+  " End of NeoBundle
+  call neobundle#end()
+
   " Installation check.
   NeoBundleCheck
 endif

こんな感じでrcbeginに、プラグイン導入後にend()を呼ぶようにしました。 end()NeoBundleNeoBundleLazyでプラグインの定義をした後に、 NeoBundleCheckより前に入れるのが正しい様です。

プラグインのブランチ管理が変わった

最近Markdownファイルを開くとシンタックスが上手く効かなくてどこかおかしいな、 という状態で、でも面倒なので放ってありました。

Markdownのシンタックスは、 plasticboy/vim-markdown の物をForkしてちょっと気になる点を自分で直して使っています。

VimでのMarkdown環境を整える

なので自分のプラグインのせいかな、と思ってたんですが、 ~/.vim/bundel/vim-markdownのディレクトリに行ってみると ファイルが何やら古い感じになってて、 git branchしてみるとブランチがdetachedな状態になってました。

他のプラグインを見てみるとそうはなってなくてこれだけ。

どうも、GitHub側でDefault branchmaster以外に設定してるのが 問題な模様。

もともとmasterはオリジナルのレポジトリを追うために使ってましたが 1、 一度消して、自分で開発に使ってるブランチをmasterに置き換えました。

それで、一度.vimrc

"NeoBundle "rcmdnk/vim-markdown"

とプラグインをコメントアウトしてVimを起動して:BundleCleanでプラグインを削除。

で、

NeoBundle "rcmdnk/vim-markdown"

と戻してプラグインを再インストールしましたが、やはりちょっと違うバージョンのものを取ってきています。

悪さをしてるのは 2 どうもNeoBundleに新しく加わったversion lockの機能の様。

Add a RollBack option · Issue #134 · Shougo/neobundle.vim

feature request , bundle-like version lock ? · Issue #253 · gmarik/Vundle.vim

~/.vim/bundle/NeoBundle.lock のファイルに、プラグインのcommit番号がリストされていて、 それに対応する物を入れる様になっていました。

`:NeoBundleUpdate`をすればこれもアップデートされる様ですが、 今回は上みたいにブランチを変えたり色々して上手く出来なかったので、 もう一度プラグインを**.vimrc**でコメントアウトし、削除。 さらに **~/.vim/bundle/NeoBundle.lock**にある**vim-markdown**のラインを削除。 その後でもう一度プラグインを有効化して再インストールすると きちんと正しい**master**の物が入りました。

追記: 2014/10/27

コメントで作者の@Shogoさんに指摘してもらいましたが、 単に

: NeoBundleReinstall

でこれらのことを良しなにしてくれます。

追記ここまで

色々試してみましたが、NeoBundleでは、 GitHubのデフォルトブランチ(HEADになるもの) は基本的に無視され、Cloneした後にmasterブランチに変更しようとするみたいです。

追記: 2014/10/27

こちらの方も速攻で手直しをして頂いて、 現時点でのNeoBundleの最新バージョンを入れると Cloneした時にHEADに指定されてる物がそのまま使われる様になりました。

追記ここまで

なのでVimのプラグインを作る場合には、素直にmasterブランチを デフォルトブランチにしておいた方が良さそう。

NeoBundleのヘルプによると

NeoBundle 'Shougo/vimshell', '3787e5'
NeoBundle 'Shougo/vimshell', 'master'

こんな感じで簡単にブランチやコミット番号が指定できるみたいですが 3、 何もない状態でのデフォルトは取り敢えずmasterを探して無ければ HEADの物を使うみたいです。

ということで、もし rcmdnk/vim-markdown を使ってておかしな感じになってる人が居たら、 一度上の様にプラグイン自体を消して、 ~/.vim/bundle/NeoBundle.lockにあるvim-markdownのラインを削除してから もう一度インストールしなおしてみてください。

スポンサーリンク
  1. GitHubでForkしたリポジトリで元のリポジトリの変化を追う

  2. 追記: 2014/10/27

    悪さと言うと改悪みたいになってしまいますが、 便利機能のための改善で、 下の対応もあって、実際には問題なくアップデートできます。

    追記ここまで

  3. 以前は

    dev版jedi-vimのインストール

    ここに書いたようにNeoBundleLazyを使ってrevでブランチを指定したりしていましたが、 上みたいにNeoBundleの第二引数を与えるとそれをブランチ名として 扱ってくれる様です。

Related Posts Plugin for WordPress, Blogger...