[lem-pdcurses] Use escape-delay variable #437
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Make escape-delay configurable #423 の escape-delay に対応しました。
今までは、Escape キーの入力があったときにフラグを立てて、
次の入力を M-x として解釈するようにしていました。
しかし、以下の問題がありました。
(1) 単独の Escape キーを入力したあとに、何かキーを押すと M-x になってしまう
(2) C-x M-x のようなキーバインドを入力できない (単独の Escape 入力が間に挟まるため)
今回、フラグを削除してタイマーのみにしました。
(lem-ncurses と同じにしました)
ただ、現状の PDCurses には、
Alt キーと同時押しで入力できない組み合わせがあり (M-<, M->, M-; 等)、
それらを入力するには Escape キーとの組み合わせが必要になります。
そのときにタイムアウトが 100 msec だと、ちょっと入力できなかったため、
デフォルト値は 1000 msec にしました。
vi-mode を使用する等で、短い値にしたい場合には、
init.lisp に以下のように記述してください。
あと、いろいろテストしていて、winpty に不具合が見つかったため、報告しました。
Workaround for the confusion of 'escape key input + DSR reply' and 'LAlt-Shift-F3' rprichard/winpty#175
(現状、mintty+winpty を使用していて、1行目の2~8桁目にカーソルを置いて、
Escape キーを押すと、Escape キーがうまく機能しなくなります。
復旧するには、lem (つまり winpty) の再起動が必要です。。。)