NeoBundle には Lazy Load 機能があって、プラグイン必要な時にロードすることができます。
その設定には特定の command が実行された時に load したり、 filetype によって load したりすることができます。
しかし、 Processing な filetype が Vim に無く、そもそも Processing 用の filetype を追加するためのプラグインが vim-processing でした。
なので、これを Lazy 化した後に必要な時のみ load する案として、
- NeoBundle では NeoBundleLazy するだけ
- autocmd で BufRead や BufNewfile の時のみ NeoBundleSource する
そこで「filetype が無いファイルのために、拡張子ごとに autoload する設定とかが NeoBundle に無いかなー」とかつぶやいて寝て起きると実装されていました。暗黒美夢王さんすごい。
autoload に filename_patterns というものが指定できるようになりました。
ファイル名の正規表現 もしくは 正規表現のリストを指定することにより、このファイルを編集した時に autoload してくれるようになります。
ということで、前回の *.pde を開いた時に vim-processing を load する、という設定が
NeoBundleLazy 'sophacles/vim-processing'から
augroup Processing
autocmd!
autocmd BufNewFile *.pde NeoBundleSource vim-processing
autocmd BufRead *.pde NeoBundleSource vim-processing
augroup END
NeoBundleLazy 'sophacles/vim-processing' , {'autoload' : {'filename_patterns' : '.*\.pde'}}に。
行も減ったし augroup も減ったので良い感じ。
あと、正規表現に対応しているのでオレオレファイルを開いた時に autoload とか、独自拡張子とかにも対応できそうです。
暗黒美夢王こと@ShougoMatsuさん、ありがとうございますー。
0 件のコメント:
コメントを投稿