最近やたらと環境再構築することがあって、それに伴いVimのプラグインインストールさせられるので、どうせならfish shellから思いついたプラグインを一発でインストールできるようにしちまえと考えた。
こんなふうに
vim-plug "dag/vim-fish"
使用環境
- Manjaro Linux KDE Edition
- Vim 8.0
- Fish shell 2.6.0
- vim-plug
.vimrcを編集
vim-plugにはtomlでプラグインを記述する機能は(多分)ないので、Plug '〜'
の部分を抽出し、fish scriptからでも簡単に編集できるようにする。
~/.vimrc
" Pluginscall plug#begin('~/.vim/plugged')
source ~/.vimrc.plugins
call plug#end()
~/.vimrc.plugins
Plug 'Shougo/vimproc.vim', { 'do': 'make' }
Plug 'itchyny/lightline.vim'
Plug 'tomasr/molokai'
Plug 'rhysd/vim-operator-surround'
Plug 'kana/vim-operator-user'
Plug 'Shougo/deoplete.nvim'
Plug 'Shougo/denite.nvim'
Plug 'terryma/vim-multiple-cursors'
Plug 'dag/vim-fish'
なんか不具合あるかなと思っていたが、起動が気持ち重くなるぐらいで特に大丈夫な様子。
config.fishにinstall用functionを追加
引数なしの場合、そのままプラグインリストを編集するようにしてみた。
config.fish
function vim-plug-install
grep "Plug '$argv'" ~/.vimrc.plugins > /dev/null; or echo "Plug '$argv'" >> ~/.vimrc.plugins
end
function vim-plug-uninstall
grep -v -F "Plug '$argv'" ~/.vimrc.plugins | tee ~/.vimrc.plugins >> /dev/null
end
function vim-plug
if count $argv > /dev/null
set flag 0
for option in $argv
switch "$option"
case i install
set flag 0
case un uninstall
set flag 1
case \*
set plugs $option $plugs
end
end
for plug in $plugs
if test $flag -eq 1
vim-plug-uninstall $plug
else
vim-plug-install $plug
end
end
if test $flag -eq 1
vim +":PlugClean" +:qa
else
vim +":PlugInstall" +:qa
end
else
vim ~/.vimrc.plugins
end
end
これでインストールとアンインストールが一発でできるようになった。具体的には
インストール時
1. .vimrc.plugins
にPlug '〜'
を追加
2. Vimを起動し:PlugInstallを実行して終了
アンインストール時
1. .vimrc.plugins
から該当のPlug '〜'
を削除
2. Vimを起動し:PlugCleanを実行して終了(このときにユーザーの確認入力が必須だが、やろうと思えばyesで回避できるかも?)
という処理を行っている。
ちゃんと動くかはわからない。
vim-plug (in(stall)) "dag/vim-fish" "mhinz/vim-startify"
vim-plug un(install) "dag/vim-fish" "mhinz/vim-startify"