FuncUndefinedイベント
そういやVimでPerlのAUTOLOADとかRubyのautoloadみたいなことをやるテクニックがhelpのどっかにあったなーと思って探したらあったのでブログに書いてみる。
FuncUndefinedイベントというのがあるのでこれを使えばよい。
「:help autoload-functions」より。
定義すべき関数名にマッチするパターンを指定してオートコマンドイベント
FuncUndefinedを使う。例: >:au FuncUndefined BufNet* source ~/vim/bufnetfuncs.vim
ファイル "~/vim/bufnetfuncs.vim" は "BufNet" で始まる関数を定義しなければなら
ない。|FuncUndefined|も参照。
こんなことも。
if !exists('s:defined_autocmd') " もしPeekScriptLocalVars()が呼ばれた時に関数が定義されてなかったら " このコードが書かれているスクリプトファイルを読み込む execute 'autocmd FuncUndefined PeekScriptLocalVars source' expand('<sfile>') let s:defined_autocmd = 1 finish endif function! PeekScriptLocalVars() ... endfunction
関数単位でautoloadしたり色々できるので便利ですね。使わないと思いますが。