タイトルですが, 本当は
おい、NeoBundle もいいけど vim-plug 使えよ
にしたかったです. 勇気が足りなかった
紹介するPlugin
これなに
Vundle , NeoBundle と同じ vim plugin manager になります.
一応, NeoBundle より後発1という形になるみたいです.
1ファイルオンリーで管理しているのが特徴.
乗り換えた理由
- junegunn world にハマった
- 人と違うのを使いたい
- 早いらしい
- やりたかったことができる
- parallel installation
- lazy load
- self management
- 設定ファイルの記述が簡単
Install
autoload に置いてね, とのこと
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
vim-plug に管理させたいなら, ディレクトリを指定する
.vim
if has('vim_starting')
set rtp+=~/.vim/plugged/vim-plug
if !isdirectory(expand('~/.vim/plugged/vim-plug'))
echo 'install vim-plug...'
call system('mkdir -p ~/.vim/plugged/vim-plug')
call system('git clone https://github.com/junegunn/vim-plug.git ~/.vim/plugged/vim-plug/autoload')
end
endif
call plug#begin('~/.vim/plugged')
Plug 'junegunn/vim-plug',
\ {'dir': '~/.vim/plugged/vim-plug/autoload'}
...
call plug#end()
Usage
.vim
call plug#begin('~/.vim/plugged')
" Vundle/NeoBundle と同じように
Plug 'junegunn/seoul256.vim'
" コマンド実行時に読み込む
Plug 'scrooloose/nerdtree', { 'on': ['NERDTreeToggle'] }
" 指定したファイルタイプを開いたときに読み込む
Plug 'tpope/vim-fireplace', { 'for': ['clojure'] }
" X | Y の時, X をインストールした後に Y をインストール
Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets'
call plug#end()
:PlugInstall
遅延読み込みできてるかどうかは :PlugStatus
で確認しながらできるのがいいですね
Tips
一度プラグインを読み込むとonに指定したコマンドは削除されてしまうよう..
なので依存するプラグインは一緒のタイミングを指定しないとだめっぽい.
.vim
" Good?Bad? Practice
let b:commandDepends = ['Unite', 'UniteWithBufferDir',
\ 'VimFilerCurrentDir', 'VimFilerBufferDir']
Plug 'Shougo/unite.vim', {'on': b:commandDepends, 'for': ['unite']}
\ | Plug 'Shougo/vimfiler', {'on': b:commandDepends}
unlet b:commandDepends
" Bad
Plug 'Shougo/unite.vim', {'on': ['Unite'], 'for': ['unite']}
\ | Plug 'Shougo/vimfiler', {'on': ['VimFilerCurrentDir', 'VimFilerBufferDir']}
" -> Unite 実行後に VimFiler を実行しないと駄目
" Bad
Plug 'Shougo/unite.vim', {'on': ['Unite', 'VimFilerCurrentDir', 'VimFilerBufferDir'], 'for': ['unite']}
\ | Plug 'Shougo/vimfiler', {'on': ['VimFilerCurrentDir', 'VimFilerBufferDir']}
" -> Unite を先に実行してしまうと vimfiler の on がなくなってしまう...
-
後発といっても2013年ぐらいからあるみたいですが... ↩