web-dev-qa-db-ja.com

ESCキーを押すと、Alt +の動作が原因で端末でわずかな遅延が発生する

私の端末設定はgnome-terminal + tmux + viバインディング付きzshです。

Vimのようなアプリケーション、またはzshのコマンドラインvi編集モードでさえ、頻繁に ESC キーですが、このキーの効果が発生するまでに少し遅延があります。参照 GNU画面でVim ESCキーが遅くなる

いくつかの実験の後、私は ESC キーとすぐに別のキー(たとえば b)を押すのと同じ効果があります Alt+b。なぜそうなのかわかりません(おそらくレガシーな理由で Alt?知りません)。いずれにせよ、私には2つあります Alt キーと私は私のこの動作をしたくない ESC キー。私は試しました C+[ それも同じ問題です。

これ、gnome-terminal、tmux、または私のOS自体(Ubuntu Natty)の責任者は不明です。これに対処する方法についてのアイデアは素晴らしいでしょう。

Update:別の端末(LXTerminal)でtmuxなしでチェックしたところ、遅延もそこにありました。

72
Shrikant Sharat

これが実際の修正です。以下を.tmux.confに追加します。

set -s escape-time 0
119
Vicent Marti

遅延は、ファンクションキーが押されたかどうかを判断する必要がある入力ルーチンによって発生します。このため、入力ルーチンは、ESC文字を読み取るたびにタイマーを開始します。タイマーが切れる前に入力から読み取られた文字(1/10秒としましょう)は、ファンクションキーのESCシーケンスとして解釈され、このESCシーケンスは、terminfoまたはtermcapデータベース(使用される低レベルのルーチンに依存)。

当然のことながら、これはESCが単独で使用されるアプリケーションには迷惑ですが、これに対する回避策はわかりません。

あなたの質問について ESC aMeta a

一部のキーボードではメタキーを使用できませんでした。回避策として、他のキーの前にESCキーを押すことがしばしば許可されていました。

7
ktf

これで問題が直接修正されるとは限りませんが、<Ctrl> cを使用して挿入モードを終了できることがわかりました。これは、tmuxの画面スクロールを終了するためにも使用できます(<leader> PgUPを使用して呼び出すことができます)

3
dtyler