Vim8のプラグイン管理にvim-plugを使う

最近少しずつ Vim の学びなおしをしています。

下記の記事では、Vim8 の標準パッケージ管理を使ってみました。

Vim8 の標準パッケージ管理を使って vim-ja を入れて help を日本語化する • Small Changes

しかし、色々とプラグインを入れていこうと考えたとき依存関係をいい感じに管理できないなと思い vim-plug を入れることにしました。

依存関係の管理といっても、A のプラグインが B に依存していることが分かればいいです。
(homebrew のように勝手に依存関係を解決してくれると最高だけど…)

vim-plug とは

junegunn/vim-plug: Minimalist Vim Plugin Manager

vim-plug を調べてみると、導入が簡単でシンプルにプラグイン管理できるプラグインマネージャーという印象です。

vim-plug の依存関係の書き方

faq · junegunn/vim-plug Wiki

|のセパレータを使う方法と手動インデントを使う方法があるようです。

私は手動インデントを使うのが視覚的に分かりやすいのでこれが決め手で vim-plug を使ってみようと思いました。

" Vim script allows you to write multiple statements in a row using `|` separators
" But it's just a stylistic convention. If dependent plugins are written in a single line,
" it's easier to delete or comment out the line when you no longer need them.
Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets'
Plug 'junegunn/fzf', { 'do': './install --all' } | Plug 'junegunn/fzf.vim'

" Using manual indentation to express dependency
Plug 'kana/vim-textobj-user'
  Plug 'nelstrom/vim-textobj-rubyblock'
  Plug 'whatyouhide/vim-textobj-xmlattr'
  Plug 'reedes/vim-textobj-sentence'

vim-plug を使ったプラグイン管理

vim-plug のインストール

下記のコマンドを実行すると、~/.vim/autoload/plug.vimがインストールされます。

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

プラグインのインストール

~/.vim/vimrcを作成します。

touch ~/.vim/vimrc

vimrcに以下の設定を追加。

" use plugin manager from vim-plug
call plug#begin('~/.vim/plugged')
Plug 'vim-jp/vimdoc-ja'
Plug 'lambdalisue/fern.vim'
call plug#end()

" helpを日本語化
set helplang=ja,en

viを再度開きなおして、:Pluginstallコマンドを実行するとプラグインがインストールされます。

プラグインをインストールすると、~/.vim/pluggedにプラグインがインストールされていました。

その他便利なコマンド

:PlugUpdateはプラグインを更新してくれるコマンドです。

このようにプラグインを便利に管理できるコマンドも提供されます。

junegunn/vim-plug: Minimalist Vim Plugin Manager

Hugo で構築されています。
テーマ StackJimmy によって設計されています。