vimプラグイン環境のインストールを自動化する
プラグインが未インストールの時に.vimrcの読み込みでエラーメッセージが出てくるのイケてないなーと思ってた。
neobundle.vim を使う。
.vimrcには、neobundleをインストールする記述は一切書かなくて、インストールしたいプラグインを羅列するだけでOK。
次に記載するインストールスクリプトを先に実行だけでプラグイン環境のインストール終わり。
[...]
" NEOBUNDLE_START
let s:neobundledir = expand('~/.vim/bundle')
execute 'set runtimepath+=' . s:neobundledir . '/neobundle.vim'
call neobundle#begin(s:neobundledir)
NeoBundle 'tpope/vim-rails'
NeoBundle "unite.vim"
NeoBundle 'scrooloose/nerdtree'
NeoBundle 'taku-o/vim-toggle'
NeoBundle 'easymotion/vim-easymotion'
NeoBundle 'motemen/git-vim'
NeoBundle 'Shougo/neocomplcache'
NeoBundle 'surround.vim'
NeoBundle 'vim-jp/vimdoc-ja'
NeoBundle 'kchmck/vim-coffee-script'
NeoBundle 'mattn/emmet-vim'
NeoBundle 'slim-template/vim-slim'
NeoBundle 'kana/vim-operator-user'
NeoBundle 'tyru/operator-camelize.vim'
call neobundle#end()
" NEOBUNDLE_END
[...]
インストールスクリプト
#!/bin/sh
curl https://raw.githubusercontent.com/Shougo/neobundle.vim/master/bin/install.sh | sh
cp ~/.vimrc ~/.original_vimrc
<< EOH > ~/.vimrc
if 0 | endif
if &compatible
set nocompatible
endif
set runtimepath^=~/.vim/bundle/neobundle.vim/
call neobundle#begin(expand('~/.vim/bundle/'))
NeoBundleFetch 'Shougo/neobundle.vim'
call neobundle#end()
filetype plugin indent on
call feedkeys(" ")
NeoBundleInstall
EOH
vim -c q
ruby << EOH > ~/.vimrc
file = File.read File.expand_path("~/.original_vimrc")
file =~ /" NEOBUNDLE_START(.*?)" NEOBUNDLE_END/m
puts <<-RUBY_EOH
#{\$1}
call feedkeys(" ")
NeoBundleInstall
RUBY_EOH
EOH
vim -c q
cat ~/.original_vimrc > ~/.vimrc
rm ~/.original_vimrc
NeoBundleInstall を実行すると
Press Enter or type command to continue
が出て入力待ちになるので
call feedkeys(" ")
を入れている。
バックグラウンドにしたらsuspendしてしまうのはなんなんだろう。
-
category:
- 開発環境