vimproc.vim に vimproc#cmd#system が実装された

さて、先日書いた Windows で system の高速化なのですが、これが vimproc.vim に取り込まれました。
この機能を使用したい場合は vimproc#system ではなくて vimproc#cmd#system を使用する必要があります。
とりあえず、簡単に速度を比較してみました。

[コード]

function! s:test2(num, cmd)
    echo "system()"
    TimerStart
    for i in range(a:num)
        call system(a:cmd)
    endfor
    TimerEnd
endfunction


function! s:test3(num, cmd)
    echo "vimproc#system()"
    TimerStart
    for i in range(a:num)
        call vimproc#system(a:cmd)
    endfor
    TimerEnd
endfunction


function! s:test4(num, cmd)
    echo "vimproc#cmd#system()"
    TimerStart
    for i in range(a:num)
        call vimproc#cmd#system(a:cmd)
    endfor
    TimerEnd
endfunction


function! Test(...)
    let cmd = get(a:, 1, "ls")
    let num = get(a:, 2, 10)
    echo "------------------"
    echo "== '" . cmd . "' x " . num . " =="
    call s:test2(num, cmd)
    call s:test3(num, cmd)
    call s:test4(num, cmd)
    echo ""
endfunction
call Test("dir", 5)
call Test("path", 5)
call Test("echo %date%", 5)
call Test("attrib main.vim", 5)
call Test("ls", 5)

[出力]

------------------
== 'dir' x 5 ==
system()
  0.506900
vimproc#system()
  0.302018
vimproc#cmd#system()
  0.085936

------------------
== 'path' x 5 ==
system()
  0.451788
vimproc#system()
  0.296782
vimproc#cmd#system()
  0.013453

------------------
== 'echo %date%' x 5 ==
system()
  0.454580
vimproc#system()
  0.297416
vimproc#cmd#system()
  0.010579

------------------
== 'attrib main.vim' x 5 ==
system()
  0.653860
vimproc#system()
  0.752728
vimproc#cmd#system()
  0.199233

------------------
== 'ls' x 5 ==
system()
  0.641182
vimproc#system()
  1.682257
vimproc#cmd#system()
  0.129654


こんな感じで処理速度が早くなっていますね。
気になる方は試してみるといいと思います。