これまで pathogen を使ってきたけど, vim-plug に乗り換える.
動作環境
- mac Mojave 10.14.2
- vim 8.1
neovim じゃなく, vim 8.1 であることに注意.
背景
本格的に vim を使い始めて早3ヶ月.
複数のサーバで同じ vim 環境を整えたいという気持ちが出てきた.
これまでは初心者でも導入ハードルが低そうな pathogen
を好んで利用してきた.
pathogen
は $ git clone
で利用したい plugin が簡単に導入可能.
一方で, 利用する plugin の管理まではできないデメリットががある.
だから 1 file で vim pluging が管理可能な vim-plug
を使うことにした.
vim の plugin 管理にまつわる苦悩は, vim-plug 作者と経緯が大して変わらない.
作者の試行錯誤の過程を知りたい場合は次の url を見るといいかも.
2013年に書かれた記事らしい.
ありがたく使わせて頂きます.
install
基本的には vim-plug の readme に従って作業を進める.
tutorial ページも用意されているので, 困ったらそちらも参照する.
$ curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
~/.vim/autoload/plug.vim
が作成されていれば ok.
~/.vim/autoload/
install plugins
vim-plug を使って plugin を inst. してみる.
.vimrc にこんな記述をすればいいらしい.
call plug#begin()
Plug 'ココに install したい plugin を記述'
call plug#end()
README > Usage > Example に具体的な使い方が載ってる.
call plug#begin()
の引数には inst. する plugin の格納パスを指定.
README では ~/.vim/plugged
になっているので踏襲する.
pathogen の場合は ~/.vim/bundle/
が plugin 格納 path だった.
試しに次の plugin を inst. する.
.vimrc に次の記述を書く.
call plug#begin('~/.vim/plugged')
Plug 'w0rp/ale'
call plug#end()
↑コレを書いたら変更を反映するために .vimrc を reload する.
:source ~/.vimrc
install するためにコマンドを叩く
:PlugInstall
コマンドを叩くと vim が画面分割され, 次のような表示が出る.
Updated. Elapsed time: 14.715725 sec.
[=]
- Finishing ... Done!
- ale: Resolving deltas: 100% (3243/3243), done.
次の場所に ale が install されている.
~/.vim/plugged/
基本的な使い方は以上.
依存関係のある plugin の取扱はこうした
vim-plug の tutorial, tips, faq はそれぞれ README に書いてある.
ここでは pluging 同士に依存関係がある場合の .vimrc 記述方法を紹介.
私はこうしたけど, もっといい方法があるかも.
faq の次の箇所を参考にした.
vim-plug no longer handles dependencies between plugins and it’s up to the user to manually specify Plug commands for dependent plugins.
依存解決は Plug
コマンドで自力で解決してね, とのこと.
引用元に拠ると, 依存関係のある plugin 記述は次のどちらかが多いらしい.
|(パイプ)
で 1行に書く- indent して複数行に書く
私は前者を採用した.
理由は, もしその plugin が不要になったら "(コメントアウト)
で一度に無効にできるから.
今回試す依存関係のある plugin はこれ.
以前 vim で markdown 環境構築に関する記事をまとめた際に登場した plugin.
plasticboy/vim-markdown
で :TOC
(Table of Contents) を出力しようと思ったら次の plugin も必要になる.
つまり, plasticboy/vim-markdown
は godlygeek/tabular
に依存している.
この依存関係を |(パイプ)
で表すために, こんな感じの .vimrc を書いた.
call plug#begin('~/.vim/plugged')
Plug 'plasticboy/vim-markdown' | Plug 'godlygeek/tabular'
call plug#end()
もうこの plugin は利用しない, というときはコメントアウト一つで依存関係のある plugin まで管理外にすることが可能.
call plug#begin('~/.vim/plugged')
" Plug 'plasticboy/vim-markdown' | Plug 'godlygeek/tabular'
call plug#end()
今回は以上.