Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

はじめに

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

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

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

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

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

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ライフを!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away