Vimのプラグイン管理 is  なにがいい？



##はじめに
Vimでプラグイン管理する際、プラグインマネージャーでプラグインを管理することが多いかと思いますが、
さまざまな種類があるので、結局どれを選べばいいのかわからないですよね。
そこで今回は自分なりにまとめてみました。



##[vim-pathogen](https://github.com/tpope/vim-pathogen)

pathogen.vimはvimプラグインの読み込みパスを変更するプラグインです。
~/.vim/bundle/<プラグイン名>/ 以下の各ディレクトリも ~/.vim/ 直下と同じように読み込み
これにより、bundle/ 以下にプラグインごとに別のディレクトリを切って管理をすることができるようになります。




###導入方法

pathogen.vim ファイルをローカルに配置します。


```
$ cd ~/.vim/autoload/
$ wget https://raw.githubusercontent.com/tpope/vim-pathogen/master/autoload/pathogen.vim
```

~/.vimrcファイルに以下を記述します。


```
execute pathogen#infect()
filetype plugin indent on
syntax on
```



##[Vundle.vim](https://github.com/VundleVim/Vundle.vim)
Vundle は Rails 3 で採用されている、Gem 管理システム Bundler に影響を受けたプラグイン管理システムです。

###導入方法

Vundleをインストール

```
$ git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
```

vimrcに以下の記述

```
set nocompatible              " be iMproved, required
filetype off                  " required

set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
# 追加するプラグインを記述
Plugin 'VundleVim/Vundle.vim'

call vundle#end()            " required
filetype plugin indent on    " required
```



##[neobundle.vim](https://github.com/Shougo/neobundle.vim)

Vundleにインスパイアされたプラグイン管理システム。Vundleの改良版。

Vundleとの主な違い
・Subversionなどにも対応しているため、vim.orgとgithub.comに縛られない
・プラグインのリビジョンを指定することができる 

※dein.vimがでた影響でneobundleのメンテはされてない

###導入方法

配置先のディレクトリ作成

```
$ mkdir -p ~/.vim/bundle
```

NeoBundleを取得

```
$ git clone git://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim
```

vimrcに設定

```
# 以下を追記
set nocompatible
filetype plugin indent off

if has('vim_starting')
  set runtimepath+=~/.vim/bundle/neobundle.vim
  call neobundle#rc(expand('~/.vim/bundle'))
endif 

NeoBundleFetch 'Shougo/neobundle.vim'

# 入れたいプラグインを追加
NeoBundle 'scrooloose/nerdtree'
NeoBundle 'mattn/emmet-vim''

filetype plugin indent on

```

プラグインをインストール

```
:NeoBundleInstall
```

プラグインをアップデート

```
:NeoBundleUpdate
```

プラグインを削除

```
:NeoBundleClean
```

##[vim-plug](https://github.com/junegunn/vim-plug)
NeoVim 互換のマネージャ シンプルな記述が魅力。
性能でいうとneobundleのほうが上だがシンプルさが根強い人気の印象。




###導入方法

vim-plugをインストール

```
$ curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
```

基本的な記述

```
call plug#begin()
インストールしたいプラグインのgithubのリポジトリを指定
call plug#end()
```


##[dein.vim](https://github.com/Shougo/dein.vim)
neobundle.vim をリプレースするべく新設計のもとに作られた。NeoVim でも動作する


・コマンドはなく、関数のみで構成されている
・プラグインの設定はTOMLで行う。
・読み込み速度が早い。


###導入方法

```
$ mkdir -p ~/.vim/dein/repos/github.com/Shougo/dein.vim
$ git clone https://github.com/Shougo/dein.vim.git \
    ~/.vim/dein/repos/github.com/Shougo/dein.vim
```


追加するプラグインを記述

```
if &compatible
  set nocompatible
endif
set runtimepath+=~/.vim/dein/repos/github.com/Shougo/dein.vim

call dein#begin(expand('~/.vim/dein'))

call dein#add('Shougo/dein.vim')
call dein#add('Shougo/vimproc.vim', {'build': 'make'})

call dein#add('scrooloose/nerdtree')

" (中略)

call dein#end()
```


##まとめ

ざっくりと一覧を挙げましたが、筆者の周りはdein.vimを使ってる方が多いかなという印象です。
(私はシンプルな記述が魅力なvim-plugが好きです。)
次々とプラグインマネージャーが出てきて、管理のしやすさや速度も向上していますが、あまりプラグインを入れすぎると、重くなってしまいますので必要最低限のプラグインだけいれればいいかなと思います。

人によって環境は異なってくるので、自分にとってベストなものを選べばいいと思います。
それでは、皆さんステキなVimライフを！