try NeoBundleLazy
背景 Background
.vimrcに必要な機能をポンポン追加していた所、若干起動が遅くなりました。
そろそろ.vimrcの中身の精査をしたく、取り急ぎ遅延起動対応を行います。
また、どういった動きになっているかも合わせて見てみたいと思います。
目標 Goal
- NeoBundleLazy化を極力行う
環境 Environment
検証 test
- NeoBundleLazyで設定可能な自動起動オプション
現段階で私が使えこなせそうな設定一覧(早く他のオプションも理解する予定)
項目 | 機能 |
---|---|
filetypes | ファイルタイプに応じてロードされます |
commands | コマンドを入力した際にロードサれます |
functions | 関数をが呼ばれた際にロードされます |
mappings | マッピングに設定されたキーを入力した際にロードされます |
unite_sources | Unite.vim用のplugin利用時に使用する |
insert | インサートモードになった際にロードされます |
on_source | on_sourceに記載されたpluginがロードされる前にロードされます |
depends | dependsに記載されたpluginに依存するため、先にdependsのpluginをロードします |
設定可能な自動起動オプション確認方法はVimのヘルプ参照です。
:help neobundle-options-autoload
- スクリプト起動状況の確認
遅延起動の肝である自分の想定どうり起動しているかを確認します。
そこでunite-scriptnamesを使うのが賢い選択だと思います。
unite-scriptnamesはUnite上でscriptnames実行結果を検索できるので便利です。
(2014/04/29 22:12:00 追記)
設定が悪いせいかunite-scriptnamesが起動時にinsertモードで起動する(Uniteのオプションに関わらず)ため、NeoBundleLazyのinsertモードで起動するpluginの確認が出来ない事がわかりました。
対処法として、mapの確認方法同様にunite-outputの機能を活用して出力しました。
※備忘メモ:
unite-output一覧はinsertモードになる前に作られるが、Unite起動後にinsertモードに変わるため、Uniteを抜けた段階で":scriptnames"の実行結果にinsertモードで起動するpluginも表示されるようになる。
nnoremap [unite] <Nop> nmap <Leader>u [unite] nnoremap <silent> [unite]s :<C-u>Unite output:scriptnames<CR>
- map設定状況の確認
スクリプト起動状況とセットで確認する事が大切となります。
確認方法はosyo-mangaさんのブログが大変参考になりました。
通常の unite-mapping で normal のマッピングのみ確認できる事は確認していたのですが、他のモードも確認する必要があったため、VimShell を組めば行ける所までは辿りつけたのですが、osyo-mangaさんの記述がスマートなやり方だったため、お蔵入りしました。
- 変数設定状況の確認
無難に"echo {{option:}{var-name}}"が定石だと思われます。
- hooks関連設定の確認
基本的には今まで上げたもので大丈夫なはずですが、NeoBundleLazy 自体を使いこなせていないため、思うように動かない事が多々ありました。
そんな時はrbtnnさんの記事を参考にpluginの状態を逐一確認するのが無難かと思われます。
- autoload2重設定
(2014/05/01 07:39:00 追記)
autoloadの設定は複数設定する事が可能です。
そこで気になったのがOR条件なのかAND条件なのかです。
下記コードで実行したところOR条件でpluginがcallされる動きをしていました。
NeoBundleLazy 'stephpy/vim-php-cs-fixer', { \ 'autoload' : { \ 'insert' : 1, \ 'filetypes': 'php',},}
感想
Unite(ユナイト)この記事製作中に読み方を知りました。
てっきりユニッ◯だと思ってました。
合わせてUnite使い始めたら便利過ぎてプラグイン追加し過ぎて、
遅延起動の記事書いてるのにVimが遅くなっていく体たらくを楽しんでみたり。
まぁ、遅く感じるのは家よりも会社ですけどね。
この記事を書くきっかけとなった'taglist.vim'の遅延起動に伴うオプション設定をhooks関数内で設定の問題自体は解決出来なかったのですが、設定がうまく機能していない事だけは確認できるようになりました。
まだまだ、検証工程にムラがあるのでもう少し煮詰めたいと思います。