Vimプラグインの管理にdein.vimを使う
家の前の日当たりがいい坂道にある桜がだいぶ咲いてきました。穏やかな春の陽気を感じます。
この週末は3連休ということもあり、いつかやろうと思っていたVimプラギンのパッケージマネージャの移行をしました。 今まで大変お世話になっていたneobundle.vimを卒業し、これからはdein.vimを使い始めます。
デインデイーン。闇の力を感じます。
こんな感じで.vimrc
もスッキリしました。素敵です。
基本的な設定の形
call dein#begin('プラグインを管理する一番上のディレクトリ') call dein#add('プラグイン名') call dein#add('プラグイン名') ... call dein#end()
vimrc
の中で、上のようにdein#begin()
とdein#end()
の行の間にインストールしたいプラグインの名前をdein#add('プラグイン名')
で書いていけばオッケーなのでやさしかったです。
いろいろな設定
dein#add('プラグイン名', { オプション } )
のように、第二引数には辞書形式でオプションを指定することができます。オプションを使うとプラグインの管理がもっと便利になります。
少しですがオプションを使った設定をしてみました。また、Vimを起動するだけでdein.vimとともに各プラグインがインストールされるようにもしてみました。
set nocompatible " Vim起動完了時にインストール augroup PluginInstall autocmd! autocmd VimEnter * if dein#check_install() | call dein#install() | endif augroup END " 各プラグインをインストールするディレクトリ let s:plugin_dir = expand('~/.vim/bundle/') " dein.vimをインストールするディレクトリをランタイムパスへ追加 let s:dein_dir = s:plugin_dir . 'repos/github.com/Shougo/dein.vim' execute 'set runtimepath+=' . s:dein_dir " dein.vimがまだ入ってなければ 最初に`git clone` if !isdirectory(s:dein_dir) call mkdir(s:dein_dir, 'p') silent execute printf('!git clone %s %s', 'https://github.com/Shougo/dein.vim', s:dein_dir) endif if dein#load_state(s:plugin_dir) call dein#begin(s:plugin_dir) " ここからインストールするプラグインを書いていく call dein#add('Shougo/dein.vim') " インストール後ビルドする場合 call dein#add('Shougo/vimproc.vim', { \ 'build': { \ 'mac': 'make -f make_mac.mak', \ 'linux': 'make', \ 'unix': 'gmake', \ }, \ }) " 条件によって使ったり使わなかったり制御する場合 call dein#add('Shougo/neocomplete.vim', { \ 'if' : has('lua') \ }) " 依存関係がある場合 call dein#add('Shougo/unite.vim') call dein#add('ujihisa/unite-colorscheme', {'depends' : 'Shougo/unite.vim'}) " 手動でcall dein#source('プラグイン名')して使い始める場合 call dein#add('Shougo/vimfiler', {'lazy' : 1}) " 指定のファイルタイプ使う場合 call dein#add('tpope/vim-rails', {'on_ft' : 'ruby'}) " dein.vimで管理して更新だけするリポジトリ(NeoBundleFetchとおなじ) call dein#add('jszakmeister/markdown2ctags', {'rtp': ''}) " サブディレクトリを指定してdein#add()する場合 " frozenオプションは自動で更新しない " 自分で開発するプラグインの管理に便利 call dein#local('~/src/github.com/violetyk', \ { \ 'frozen' : 1, \ 'depends' : [ \ 'kana/vim-gf-user', \ 'Shougo/neosnippet.vim', \ 'vim-jp/vital.vim' \ ] \ }, \ [ \ '*.vim', \ 'neosnippet-*', \ 'neocomplete-*', \ 'scratch-utility' \ ]) call dein#end() call dein#save_state() endif filetype plugin indent on