rcmdnk's blog
Last update

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

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

: NeoBundleReinstall

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

追記ここまで

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

追記: 2014/10/27

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

追記ここまで

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

NeoBundleのヘルプによると

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

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

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

Sponsored Links
  1. GitHubでForkしたリポジトリで元のリポジトリの変化を追う

  2. 追記: 2014/10/27

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

    追記ここまで

  3. どうもDisqusの仕様でhttpのページとhttpsのページのコメントが別になってしまってる様です。

    なので、今このページをhttpの方で見てる人は@Shougoさんのコメントが見えないと 思いますので、コメントのリンク先に行くか、

    https://rcmdnk.github.io/blog/2014/10/27/computer-vim-markdown/

    で開きなおしてください。

    余りコメントもらうことないですが、他のページでも やはりhttpで付けたものはhttpsの方では見れなかったり。

    大分前にhttps用も導入されたみたいですが、 この問題に当たってる人はそんなに居ないんでしょうか。。。? (下のリンクはただ使える様になった際にまだhttpsで使えないみたいだけど? というだけの問なので余り関係ないです。)

    wordpress - How to enable SSL support on DISQUS? - Stack Overflow

    追記: 2015/06/15

    disqus_identifierという値を指定しておくとページのURLに関係なく 同じDisqusを出せる、と言う物があって、 それはOctopressのデフォルトのスクリプトでも指定があって URL(http:で始まる)を指定していました。

    JavaScript configuration variables DISQUS

    これが以前は効かなかった様なきがするんですが、 いま見てみたらhttp/https両方が同じコメント(httpの方の物)を出すようになっていました。

    ちょっとDisqusのスクリプトをデフォルトから移動させたりしましたが、 基本、同じ様にhttpなURLを指定してるつもりなんですが、 今はidentifierがきちんと働いてる形です。

    今はhttpsのコメントが載ってる方は以下から見ることが出来ます。

    Disqus Comments at https

    追記ここまで

  4. 以前は

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

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

Sponsored Links

« OctopressのGist表示の再調整 VimでMarkdownの環境を整える その2 »

}