読者です 読者をやめる 読者になる 読者になる

mabulog

このブログは、mabuの平凡な日常を淡々と描く物です。 過度な期待はしないでください。 あと、部屋は明るくして、 モニターから3メートルは離れて見やがってください。

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関数内で設定の問題自体は解決出来なかったのですが、設定がうまく機能していない事だけは確認できるようになりました。
まだまだ、検証工程にムラがあるのでもう少し煮詰めたいと思います。

参考サイト Reference