opamp_sando's blog

クソザコが割りと適当なことを書くためにある備忘録です。あとたまに普通の日記も書きます

cursesでのESCの遅延を解消する

cursesではEscキーを判定する場合遅延が発生する。これはcursesがEscキーで始まるエスケープシーケンスを区別するために短時間待機する必要があるから だそうだ。
しかしvimやviの挙動を見てるとEscを押してもほぼストレスなく動く。
ということは回避策があるということ・・・ ということで調べてみたらビンゴっぽい資料がでてきた。
http://en.chys.info/2009/09/esdelay-ncurses/

どうやらESCDELAYという環境変数?のようなものがあるようだ。
これに値をセットしてやればいい。vimではEsc遅延してないように見えるが上の資料によると25ミリ秒ほど遅延してるようだ。
ということでこのESCDELAY = 25;と設定して遅延時間をvimと同じくらいに設定する。
ちなみにデフォルトでは体感では1.5から2秒くらい遅延してるように感じる。

遅延を解消してEscを判定するcursesコードをかいてみた

というか面倒で調べてなかったけどいい加減コードをgistにあげたりこうして画像で上げるのも疲れたしコードをブログに記載する方法を調べてみようか・・・次の機会にでも。
ということでノシ

上のコードは実行すると確かにEscの遅延は解消されている。 確認済み。

Firefox ブラウザ無料ダウンロード