VimでBundler(プラグイン管理)するvundleインストール手順

[Vim][備忘録]VimでBundler(プラグイン管理)するvundleインストール手順

前回までのあらすじ

普通に使っているだけだった。プラグインとかも使ってみたい、入れ方メモる。

参考サイト

環境

  • WindowsXP
  • Vim 7.3 香り屋版
  • msysGit

プラグイン管理

プラグインを入れようと思った矢先、どうもプラグイン管理をするプラグイン? がある模様。名前がvundleといって、RubyのGem管理に使われているBundlerに影響を受けたものみたい。Bundlerなら使ったことあるし、それなら入れやすいかも。

vundleインストール

[http://github.com/gmarik/vundle.git:title=Github]にリポジトリがあるのでgitでホームの.vimディレクトリにcloneする

$ git clone http://github.com/gmarik/vundle.git ~/.vim/vundle.git
Cloning into %USERPROFILE%/.vim/vundle.git...
remote: Counting objects: 2239, done.
remote: Compressing objects: 100% (1464/1464), done.
remote: Total 2239 (delta 736), reused 2183 (delta 685)
Receiving objects: 100% (2239/2239), 269.48 KiB | 66 KiB/s, done.
Resolving deltas: 100% (736/736), done.

設定

_vimrcまたは.vimrcを開き、まず以下の設定を記載。

" vundle
set nocompatible
filetype off
set rtp+=~/.vim/vundle.git
call vundle#rc()

filetype plugin indent on

一行目のnocompatible……。

NOTE: Viコンパチブルとは全てのオプションがグローバルであることを意味するので、

ファイル形式識別と’compatible’は同時に使うことはできない。既に’compatible’を設

定している場合には、それを解除する必要がある。

という事でファイル形式の検出と競合するので無効にされている模様。で、ファイル形式の検出はfiletypeコマンドで設定される。vimはファイル編集の際に必ずファイルタイプを検出し、いい感じのタイプを選んでくれるらしい。大きく分けて下記の3つの設定がある。

  • 検出自体をするかどうか
    • プラグインを検出するかどうか
    • インデントファイルを検出するかどうか

検出自体するかどうかが一番強く、これが無効になると残りも自動的に無効になるようだ。

上記の.vimrcではこのように変化している。

コマンド 検出 プラグイン インデント
:filetype off 無効 変化なし 変化なし
:filetype plugin indent on 有効 有効 有効

また、:filetypeコマンドで現在の状態を確認する事ができる。

filetype detection:ON  plugin:ON  indent:OFF

rtpがなんなのかわからないけど、とりあえずこれにvundle.gitのパスを追加? した後vundle#rcを呼んでる。vundle#rcメソッドはvundle.git/autoload/vundle.vimにあった。

func! vundle#rc(...) abort
  let g:bundle_dir = len(a:000) > 0 ? expand(a:1    , 1) : expand('$HOME/.vim/bundle', 1)
  let g:vundle_log = []
  call vundle#config#init()
endf

vundleの初期化を行っているようだ。

プラグインの指定

実際にインストールするプラグインはvundle#rc()とfiletypeの間に記載していく。プラグインの指定方法は三つあり、書き方で自動判別してくれる?

  • GitHubのリポジトリを指定する場合…ユーザIDとリポジトリ名
Bundle 'user_name/repository_name'
  • それ以外のGitリポジトリを指定…URLをフルパスで
Bundle 'git://repository_url'
Bundle 'plugin_name'

今回は補完を行うneocomplecacheというプラグインをインストールしてみる。[https://github.com/Shougo/neocomplcache:title] GitHubにあるので……。

" vundle
set nocompatible
filetype off
set rtp+=~/.vim/vundle.git
call vundle#rc()

Bundle 'Shougo/neocomplcache'

filetype plugin indent on

こうなる。これで:BundleInstallをすればいいんだけどその前に!

Windows環境で必須なもの

[https://github.com/gmarik/vundle/wiki/Vundle-for-Windows:title]

Gitとcurlが必要だったようで。Gitは入っていたがcurlが入っていなかったので入れる。

……というか、msysGitの中にcurlコマンドがあるのでそれを使えた。もしくは上記のページにあるcmdファイルを作成する。

httpで落としたい

Git://とかhttps;//が使えない場合、http://で落としたいんだけど、GitHub指定方法だとhttps://でgit cloneしようとしてうまくいかない。

じゃあフルパス指定したらいけるかなと思ってこうしてみた。

Bundle 'http://github.com/Shougo/neocomplcache'

これでもhttps://でcloneされてしまう。困ったのでソースを見てみたら案外早く解決方法見つかった。.vim/vundle.git/autoload/vundle/config.vimの44行目くらいにプロトコルを指定しているところが。

 let git_proto = exists('g:vundle_default_git_proto') ? g:vundle_default_gi
 t_proto : 'https'

これをhttpにしてみたらDone!になった! .vim/bundle/の下にプラグインが!

neocomplcache

.vim\bundle\neocomplcache\doc\neocomplcache.txtのEXAMPLES *neocomplcache-examples*より下を.vimrcにコピー。で、viを再起動したら補完が!