VimでBundler(プラグイン管理)するvundleインストール手順
環境
- WindowsXP
- Vim 7.3 香り屋版
- msysGit
プラグイン管理
プラグインを入れようと思った矢先、どうもプラグイン管理をするプラグイン? がある模様。名前がvundleといって、RubyのGem管理に使われているBundlerに影響を受けたものみたい。Bundlerなら使ったことあるし、それなら入れやすいかも。
vundleインストール
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の間に記載していく。プラグインの指定方法は三つあり、書き方で自動判別してくれる?
Bundle 'user_name/repository_name'
- それ以外のGitリポジトリを指定…URLをフルパスで
Bundle 'git://repository_url'
- vim-scriptsのリポジトリを指定…plugin名
Bundle 'plugin_name'
今回は補完を行うneocomplecacheというプラグインをインストールしてみる。Shougo/neocomplcache · GitHub GitHubにあるので……。
" vundle set nocompatible filetype off set rtp+=~/.vim/vundle.git call vundle#rc() Bundle 'Shougo/neocomplcache' filetype plugin indent on
こうなる。これで:BundleInstallをすればいいんだけどその前に!
Windows環境で必須なもの
Vundle for Windows · gmarik/vundle Wiki · GitHub
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を再起動したら補完が!