New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

タイマーが欲しい #150

Closed
mattn opened this Issue Jan 27, 2012 · 8 comments

Comments

Projects
None yet
3 participants
@mattn
Member

mattn commented Jan 27, 2012

バッファローカルupdatetime?

@Shougo

This comment has been minimized.

Show comment
Hide comment
@Shougo

Shougo Jan 27, 2012

Member

バッファローカルupdatetime?

そうですね。ただ、updatetimeとは別の仕組みにしたほうがよいと思います。
なぜなら、CursorHoldIをタイマー代わりに使う仕組みがそもそも副作用が大きすぎるからです。
無意味なswapファイルへの書き込みが頻発してしまいます。

できれば、バッファローカルなだけでなく、プラグインローカルとなるような仕組みがほしいですね。
タイムアウトもプラグイン毎に設定したい。
これは比較的大きなパッチになるでしょう。
しかし、多くのプラグインにおいて性能改善や実装の簡単化・競合の解消につながりますし、「マルチスレッド欲しい」という要望に対する一つの解決方法になるのではないかと考えています。

Member

Shougo commented Jan 27, 2012

バッファローカルupdatetime?

そうですね。ただ、updatetimeとは別の仕組みにしたほうがよいと思います。
なぜなら、CursorHoldIをタイマー代わりに使う仕組みがそもそも副作用が大きすぎるからです。
無意味なswapファイルへの書き込みが頻発してしまいます。

できれば、バッファローカルなだけでなく、プラグインローカルとなるような仕組みがほしいですね。
タイムアウトもプラグイン毎に設定したい。
これは比較的大きなパッチになるでしょう。
しかし、多くのプラグインにおいて性能改善や実装の簡単化・競合の解消につながりますし、「マルチスレッド欲しい」という要望に対する一つの解決方法になるのではないかと考えています。

@thinca

This comment has been minimized.

Show comment
Hide comment
@thinca

thinca Jan 27, 2012

Member

この手の話題はvim_devでも以前上がってた気がしますね。どこだったかな…(探したけど見付けられなかった)。
JavaScriptのsetTimeout()的な提案もその中でされていたように記憶しています。

Member

thinca commented Jan 27, 2012

この手の話題はvim_devでも以前上がってた気がしますね。どこだったかな…(探したけど見付けられなかった)。
JavaScriptのsetTimeout()的な提案もその中でされていたように記憶しています。

@mattn

This comment has been minimized.

Show comment
Hide comment
Member

mattn commented Jan 27, 2012

@Shougo

This comment has been minimized.

Show comment
Hide comment
@Shougo

Shougo Jan 27, 2012

Member

それっぽいですね。RepeatするCursorHoldI = Timerでしょうね。

Member

Shougo commented Jan 27, 2012

それっぽいですね。RepeatするCursorHoldI = Timerでしょうね。

@Shougo

This comment has been minimized.

Show comment
Hide comment
@Shougo

Shougo Sep 1, 2012

Member

こんにちは。ヤル気が出たので、まずは仕様を考えてみることにしました。

autocmd Timer <time=N> {pat} {cmd}
autocmd TimerI <time=N> {pat} {cmd}

タイマーグループはaugroupで代用することにしましょう。
CursorHoldIを参考にすれば実装できると思います。タイマーが呼ばれる時間は<time=N>で指定します。
省略されると 'updatetime' の値を使用します。
autocmdのデータ構造に変数を追加する必要があります。

Member

Shougo commented Sep 1, 2012

こんにちは。ヤル気が出たので、まずは仕様を考えてみることにしました。

autocmd Timer <time=N> {pat} {cmd}
autocmd TimerI <time=N> {pat} {cmd}

タイマーグループはaugroupで代用することにしましょう。
CursorHoldIを参考にすれば実装できると思います。タイマーが呼ばれる時間は<time=N>で指定します。
省略されると 'updatetime' の値を使用します。
autocmdのデータ構造に変数を追加する必要があります。

@Shougo

This comment has been minimized.

Show comment
Hide comment
@Shougo

Shougo Sep 1, 2012

Member

パッチは自分で実装する予定ですが、なにかアドバイスがあればよろしくおねがいします。

Member

Shougo commented Sep 1, 2012

パッチは自分で実装する予定ですが、なにかアドバイスがあればよろしくおねがいします。

@Shougo

This comment has been minimized.

Show comment
Hide comment
@Shougo

Shougo Sep 6, 2013

Member

タイマー機能のパッチを実装した人が現れたので、ちょっとこちらはどうしましょうか……。

#19

今のところは様子見ですが、議論の流れによってはcloseするべきかもしれません。

Member

Shougo commented Sep 6, 2013

タイマー機能のパッチを実装した人が現れたので、ちょっとこちらはどうしましょうか……。

#19

今のところは様子見ですが、議論の流れによってはcloseするべきかもしれません。

@Shougo

This comment has been minimized.

Show comment
Hide comment
@Shougo

Shougo Nov 23, 2013

Member

#19

こちらがあるので、ここは重複としてcloseします。

Member

Shougo commented Nov 23, 2013

#19

こちらがあるので、ここは重複としてcloseします。

@Shougo Shougo closed this Nov 23, 2013

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment