元々 Vim script でスレッド処理が行いたかったのですが、残念ながらどうあがいてもそれは無理なので 『それならばコルーチンを使って細かく処理を分ければいいのでは?』 といったことが事がきっかけ。 まぁコルーチン自体は使ったことがないんですが。 で、いろいろと構文を考えてみたんですけど、現状はこんな感じ。 [使い方] function! s:func() Coroutine Echo "hello" Yield Echo "," Yield Echo "world" Yield Echo "end" endfunction function! s:test_func() call s:func() call s:func() call s:func() call s:func() call s:func() endfunction call s:test_func() functio