[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を再起動したら補完が!