LoginSignup
0
0

More than 5 years have passed since last update.

fish shellからVimPlugにコマンド一発でプラグインをインストールできるようにする

Last updated at Posted at 2017-09-07

最近やたらと環境再構築することがあって、それに伴い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
" Plugins
call 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に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.pluginsPlug '〜'を追加
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"
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0