ESC キーは Alt+ 動作により端末に若干の遅延が発生します。

ESC キーは Alt+ 動作により端末に若干の遅延が発生します。

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

vimなどのアプリケーションでもzshのコマンドラインvi編集モードでもこのキーを頻繁に押す必要がありますが、ESCキーが適用される前に少しの遅延があります。バラよりGNU画面により、Vim ESCキーが遅くなります。

ESC数回の実験の最後にキーを押した後、すぐに別のキー(たとえばb)を押すと、を押すのと同じ効果があることがわかりましたAlt+b。なぜこれが起こるのかわかりません(存在しない既存の理由かもしれませんAlt。わかりません)。とにかく、私は2つのキーを持っていて、私のキーがこのように動作したくAltありません。ESC私はこれを試しましたが、C+[同じ問題があります。

gnome-terminal、tmux、または私のOS自体(Ubuntu Natty)に対する責任が誰にあるのかわかりません。この問題を解決する方法についてのアイデアがあれば良いでしょう。

修正する:他の端末(LXTerminal)でtmuxなしで確認しましたが、そこでも遅延が発生しました。

答え1

これは実際の修正です。以下を追加してください.tmux.conf

set -s escape-time 0

説明で述べたように、サーバーを再起動する必要があるかもしれません。  tmux kill-serverサーバーをシャットダウンします。再起動が必要な場合があります。または、 tmux プレフィックス (デフォルト + )tmuxを入力して、コマンド プロンプトから構成ファイルを再ロードすることもできます。CtrlB: と入力してsource-file ~/.tmux.conf

答え2

遅延は、ファンクションキーを押すかどうかを決定する必要がある入力ルーチンが原因で発生します。これを行うには、入力ルーチンはESC文字を読み取るたびにタイマーを開始します。その後、タイマーが期限切れになる前(1/10秒と仮定)入力から読み取られた文字はファンクションキーのESCシーケンスとして解釈され、対応するESCシーケンスはterminfoまたはterminfoの既知のESCシーケンスと比較されます。 。 termcapデータベース(使用されている低レベルルーチンによって異なります)

もちろん、これはESCだけを使用するアプリケーションでは面倒ですが、回避策はわかりません。

ESC a=行動に関するあなたの質問についてMeta a

すべてのキーボードがメタキーを提供するわけではありません。回避策として、通常、他のキーを押す前にESCキーを使用することが許可されています。

答え3

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

関連情報