Vim標準のパッケージマネージャを使いやすくするスニペットです。
特長
- コマンド
:PackGet
を実行すると、GitHub上のプラグインをインストールできます。- 実行例:
:PackGet 'tpope/vim-surround'
.vimrc
にPackGet 'tpope/vim-surround'
のように書いておけば、起動時にプラグインを自動インストールしてくれます。
- 実行例:
- パッケージ管理プラグインを導入する手間がありません。
- dotfilesにvimの設定を書きやすくなります。
スニペット
.vimrc
function! InstallGithubPlugin(id, kind)letl:idary = split(a:id,'/')letl:local = split(&rtp,',')[0].'/pack/github/'.a:kind.'/'.l:idary[1]if!isdirectory(l:local)call mkdir(l:local,'p')silent exec ':!git clone --depth 1 https://github.com/'.a:id.'.git '.l:local
packloadall!redraw!endifendfunctionfunction! UpdatePlugins()fordin split(glob(split(&rtp,',')[0].'/pack/github/*/*'),'\n')silent exec ':!git --git-dir='.d.'/.git reset --hard HEAD'silent exec ':!git --git-dir='.d.'/.git pull'endforpackloadall!redraw!endfunction
command!-nargs=1 PackGet call InstallGithubPlugin(<args>,'start')
command!-nargs=1 PackGetLazy call InstallGithubPlugin(<args>,'opt')
command!-nargs=0 PackPullAll call UpdatePlugins()
注
- GitHub上にあるプラグインのみ対応しています。
- Gitのブランチやコミットは指定できません。
- インストール後に操作が必要なプラグインは、手動でしないといけません。
- たとえば
junegunn/fzf.vim
の場合、インストール後にfzf#install()
を手動で実行する必要あり。
- たとえば
- Ubuntu, Windowsで動作確認してます。
その他の機能
- コマンド
:PackPullAll
を実行すると、インストール済みのパッケージを最新にします。 - プラグインの遅延読み込みは、コマンド
:PackGetLazy
でできます。- 例えば goファイルを開いたときに
fatih/vim-go
を読み込みたい時など
- 例えば goファイルを開いたときに
例
.vimrc
" 起動時に読み込むプラグインは、以下のように一行で書けます。
PackGet 'tpope/vim-repeat'
PackGet 'tpope/vim-surround'" 遅延読み込みするプラグインは、以下のように必要に応じて設定してください。
PackGetLazy 'fatih/vim-go'
augroup au_PackGetLazy_go
autocmd!
autocmd FileTypegopackaddvim-go
augroup END