【Vim】シンプルで高速なプラグインマネージャー vim-jetpackのインストール方法と設定について
ひでまる
目次
Jetpack というシンプルで高速なおすすめのプラグインマネージャーを一つ書き残そうと思います
プラグインマネージャー
プラグインマネージャーとは数ある Vim プラグインを管理するためにあります
dein.vim
やvim-plug
など多くのプラグインマネージャーがありますが、筆者がおすすめするプラグインマネージャーはvim-jetpack
です
vim-jetpack
なんだこれは
vim-jetpack
開発者の方の Zenn の記事によると、
vim-jetpack は vim-plug の実装を vim8/neovim 向けにモダン化させ dein.vim で用いられている最適化手法を取り入れた,Packer.nvim 風のコマンド郡を備えたとても高速なプラグインマネージャです
引用:
とにかくプラグインマネージャーをカスタマイズをしていない状態で、高速で Vim を起動できるプラグインマネージャーです
詳しくvim-jetpack
を知りたい場合は引用元の記事をお読みください
インストール
以下のコマンドを実行してください
Vim
curl -fLo ~/.vim/autoload/jetpack.vim --create-dirs https://raw.githubusercontent.com/tani/vim-jetpack/master/autoload/jetpack.vim
NeoVim
curl -fLo ~/.config/nvim/autoload/jetpack.vim --create-dirs https://raw.githubusercontent.com/tani/vim-jetpack/master/autoload/jetpack.vim
プラグインの追加
ここではインストールするプラグインを定義してます
Jetpack は複数の DSL に対応しているので、様々な書き方でプラグインをインストールすることができます
筆者はシンプルなvim-plug
方式で使ってます
vim-plug style
この方式の場合はJetpack 'repo名'
call jetpack#begin()
" bootstrap
Jetpack 'tani/vim-jetpack', { 'opt': 1 }
Jetpack 'junegunn/fzf.vim'
Jetpack 'junegunn/fzf', { 'do': {-> fzf#install()} }
Jetpack 'neoclide/coc.nvim', { 'branch': 'release' }
Jetpack 'neoclide/coc.nvim', { 'branch': 'master', 'do': 'yarn install --frozen-lockfile' }
Jetpack 'vlime/vlime', { 'rtp': 'vim' }
Jetpack 'dracula/vim', { 'as': 'dracula' }
Jetpack 'tpope/vim-fireplace', { 'for': 'clojure' }
call jetpack#end()
dein/ minpac style
call jetpack#begin()
" bootstrap
call jetpack#add('tani/vim-jetpack', { 'opt': 1 })
call jetpack#add('junegunn/fzf.vim')
call jetpack#add('junegunn/fzf', { 'do': {-> fzf#install()} })
call jetpack#add('neoclide/coc.nvim', { 'branch': 'release' })
call jetpack#add('neoclide/coc.nvim', { 'branch': 'master', 'do': 'yarn install --frozen-lockfile' })
call jetpack#add('vlime/vlime', { 'rtp': 'vim' })
call jetpack#add('dracula/vim', { 'as': 'dracula' })
call jetpack#add('tpope/vim-fireplace', { 'for': 'clojure' })
call jetpack#end()
packer style
require('jetpack').startup(function(use)
-- bootstrap
use {'tani/vim-jetpack', opt = 1}
use 'junegunn/fzf.vim'
use {'junegunn/fzf', do = 'call fzf#install()' }
use {'neoclide/coc.nvim', branch = 'release'}
use {'neoclide/coc.nvim', branch = 'master', do = 'yarn install --frozen-lockfile'}
use {'vlime/vlime', rtp = 'vim' }
use {'dracula/vim', as = 'dracula' }
use {'tpope/vim-fireplace', for = 'clojure' }
end)
paq style
require('jetpack').setup {
-- bootstrap
{'tani/vim-jetpack', opt = 1},
'junegunn/fzf.vim',
{'junegunn/fzf', do = 'call fzf#install()' },
{'neoclide/coc.nvim', branch = 'release'},
{'neoclide/coc.nvim', branch = 'master', do = 'yarn install --frozen-lockfile'},
{'vlime/vlime', rtp = 'vim' },
{'dracula/vim', as = 'dracula' },
{'tpope/vim-fireplace', for = 'clojure' },
}
移行
前述した通り Jetpack は複数の DSL に対応しているので、他のプラグインマネージャーからの移行がとても容易です
Vim で.vimrc
を開いて以下のコマンを実行してください
移行元のプラグインマネージャーの設定はコメントアウトして消してください
vim-plug
:%s/Plug/Jetpack/
dein.vim
:%s/dein/jetpack
packer.nvim
:%s/packer/jetpack
コマンド
vim-jetpack
で使用するコマンドはただ二つ
JetpackSync
:JetpackSync
このコマンド一本で、プラグインのインストール及び更新と最適化まで全て行います
Jetpack repo
:Jetpack repo ['user/repo',option]
このコマンドはjetpack#add()
をコマンドにしたもので、GitHub リポジトリと option を指定するとプラグインを追加します
dotfiles などで、複数の環境で共有して使っている場合は推奨しません
設定
g:jetpack_ignore_patterns
call add(g:jetpack_ignore_patterns, '/*.yaml')
call add(g:jetpack_ignore_patterns, '/*.json')
このリストはファイルのバッティングを無視するようにします
g:jetpack_copy_method
let g:jetpack_copy_method='system' " Default
let g:jetpack_copy_method='copy' " Neovimのみ使用可能 高速
let g:jetpack_copy_method='hardlink' " ハードリンクを作成
let g:jetpack_copy_method="symlink" " シンポリックリンクを作成
これは:JetpackSync
した際ファイルをコピーする速度に関する設定です
Neovim を使ってる場合はlet g:jetpack_copy_method='copy'
に設定しましょう
安定していて高速です
g:jetpack_download_method
let g:jetpack_download_method='git' " プラグインのダウンロードにgitを使用
let g:jetpack_download_method='curl' " プラグインのダウンロードにcurlを使用
let g:jetpack_download_method='wget' " プラグインのダウンロードにwgetを使用
これは:JetpackSync
した際ファイルをダウンロードする時に使うコマンドを設定できます
git
が入っていない開発環境なんて聞いたことがないので、デフォルト値のgit
で問題ありません
g:jetpack#optimization
※g:jetpack#optimization
はアップデートによって機能しなくなりました
let g:jetpack#optimization=0 " 最適化しない
let g:jetpack#optimization=1 " 安全な場合最適化
let g:jetpack#optimization=2 " 全てのプラグインを最適化
とりあえずlet g:jetpack#optimization=2
で設定しましょう
もし環境が壊れた場合はlet g:jetpack#optimization=1
に設定しましょう