deinでvimのプラグインを管理する

さて今回は、vimのプラグイン管理をするためのプラグインdein.vimの使い方についてです。

vimには優秀なプラグインが数多く存在しており、それらを使わない手はありません。
使用するプラグインの数が多くなればなるほど、管理が大変になってきます。

そこで活躍するのが、プラグイン管理のためのプラグインdein.vimです。

 

参考:私が使用している便利なプラグイン一覧
vim とても強力なプラグインたち

 

dein.vimとは

dein.vimとは、vim界隈で有名なShougoさんが作成したプラグインのインストール・アップデートなどを管理してくれるためのプラグインです。

作者はひと昔前のプラグイン管理ツールNeoBundleの作者と同一人物で、NEoBundleと比べてプラグインのロード時間がかなり短縮されています。

作者自身がNeoBundleの時代は終わったからdein.vimにしたほうが良いと言っていますので、NeoBundleをお使いの皆さんもぜひdeinに乗り換えてみてはいかがでしょうか。

 

 

dein.vimを使うためのサンプルコード

説明するよりもサンプルコードを眺めてもらった方が早いと思います。
このサンプルをvimrcに記述してあげることで、自動的にdeinがインストールされます。

以上のコードをvimrcに書き加えることで、自動的にdein.vimのダウンロードからインストールまでを行なってくれます。

処理の流れとしては、

  1. deinのインストールディレクトリの指定
  2. deinがインストールされていなかったらインストール
  3. tomlファイル(使用するプラグインが記述されているファイル)の場所を指定
  4. tomlファイルの読み込み
  5. インストールされていないプラグインがあればインストール

となります。

使用するプラグインの記述は、toml形式で書かれた別ファイルを使用します。
サンプルコードでは、~/.vim/dein/dein.tomlを読み込む設定となっています。

必要であれば、##########が記載されている行のディレクトリをお好みの場所に変更してください。

 

使用するプラグインを列挙したtomlファイルの準備

deinを使用する準備ができたら、次はvimに追加したいプラグインを列挙したtoml形式のファイルを準備します。
サンプルコードをそのまま使う方は~/.vim/dein/dein.tomlというファイルを用意しましょう。

 

tomlファイルの記述

tomlファイルの記述は上記のように行います。
例えば上記にようにdein.tomlに記述するとNERDTreeとctrlp.vimというプラグインが入ります。

プラグインの記述はgithubの著者名とリポジトリ名が入ります。
repo = ‘著者名/リポジトリ名’

 

hook機能を使う

dein.vimにはhook機能が実装されており、プラグインが追加された時に読み込まれるスクリプトを記述することができます。

例えば、プラグインが追加された直後にあるスクリプトを実行したい場合は以下のようになります。

この例では、iceberg.vimというカラースキームの使用を宣言して、それが追加された直後に
colorscheme iceberg
という一文を実行し、カラースキームをicebergに変更しています。

 

遅延ロードについて

このdein.vimというプラグインマネージャは遅延ロードという仕組みを導入しています。

プラグインは普通ですとvimの起動のタイミングと同時に読み込まれます。しかし、使用するプラグインの数があまりにも多すぎると、読み込みに時間がかかってしまう可能性があります。

遅延ロードとはプラグインをvimの起動時には読み込まず、ある一定のタイミング(例えば、インサートモードに入った時)で読み込むことができ、vimの起動時間を短縮することができます.

遅延ロードするプラグインの記述は~/.vim/dein/dein_lazy.tomlというファイルに記述します。

 

遅延ロードのdein_lazy.tomlファイルの記述

遅延ロードのファイルdein_lazy.tomlを使用する場合は、サンプルコードのdein_lazy.tomlの2箇所をコメント解除することをお忘れなく。

遅延ロードを行う場合にはロード条件を指定してあげます。
上の例では、ファイルタイプがpythonの場合のみプラグインをロードする指定をしています。

on_cmd
コマンドが実行されるにロード。ListかStringで指定。
on_cmd = [‘Hoge’] など。

on_event
イベントが実行される時にロード。ListかStringで指定。
on_event = [‘TabNew’] など。

on_func
関数が実行される時にロード。ListかStringで指定。
on_func = [‘Piyo’] など。

on_ft
指定されたファイルタイプの時にロード。ListかStringで指定。
on_ft=[‘Python’] など。

on_i
インサートモード移行時にロード。Numberで指定。0以外が指定されると有効となる。
on_i = 1 など。

 

以上、deinの使い方についてでした。

 

参考:私が使用している便利なプラグイン一覧
vim とても強力なプラグインたち