Vim 7.4.2304 で Timer のコールバック内で timer_stop() できるようになった
以前、『コールバック関数内で timer_stop() 出来ない』という問題があったんですが、Vim 7.4.2304 でこの問題が修正されました。
function! Test() let disp = { "value" : 0 } function! disp.call(...) echo self.value let self.value += 1 " 5回呼び出されたら止める if self.value > 5 call timer_stop(self.id) endif endfunction " 辞書関数をコールバックとして登録 let disp.id = timer_start(500, disp.call, { "repeat" : -1 }) endfunction