GNU画面でキーバインディング/キーバインディングを無効にする方法は?

GNU画面でキーバインディング/キーバインディングを無効にする方法は?

私はiTerm2Macでcontrol+control+を使って押したときに16進数を転送するようにカスタマイズしました。これにより、コマンドを入力または編集すると、カーソルが行の先頭と終わり(一度に1語の代わりに)に移動します。 - そして、このキーに加えて、矢印はカーソルを一度に1単語ずつ移動します。0x010x05alt

これは、スクリーンセッションを開始するまでSSHを使用すると、リモートLinuxシステムでうまく機能します。 +はまだうまく機能しますが、+を使用しようとすると、ステータスcontrol領域に次のメッセージが表示されます。controlscreen

No other window.

ドキュメントでは、次のウィンドウと前のウィンドウに次の行を追加するか、/etc/screenrcキーをバインドすることをお勧めします。~/.screenrc

bindkey "^[[5D" prev
bindkey "^[[5C" next

バインディングを解放する構文は、コマンドなしで次の行を使用することです。

bindkey "^[[5D"
bindkey "^[[5C"

また、以下を試しました。

bindkey "^[[01"
bindkey "^[[05"

これらのどれもうまくいかないようです。

/etc/screenrc完全に変更されておらず、Ubuntu 16.04現在の~/.screenrc文書はありません(つまり、非標準干渉なし)。

中断位置を特定するためにバインディングをオフにするか、さらにデバッグするにはどうすればよいですか?

答え1

コードは0x01画面上のデフォルトのコマンド文字であるControl-Aなので、control+を2回実行するとデフォルトのジョブバインディングが表示されます。その他つまり、別のウィンドウなので、メッセージが表示されます。

画面の起動時に Control-b などの他のコマンド文字に変更できます。

screen -e^Bb

または行~/.screenrcを入力することもできます

escape ^Bb

答え2

^A文字を送信するようにCtrl+を設定しました(Ctrl + A)。LeftこれはCtrl+で送信されたのと同じ文字ですA。 ^Aはスクリーンキーバインディングのデフォルトのプレフィックス文字です。

bindkey "^[[5D" prev画面構成の内容は2つの理由で役に立たない。まず、Screenがこのエスケープシーケンスを受信したときに何が起こるかを定義します。プレフィックス文字の後、つまり^Aの次です。次に、^[[5D一部の端末はCtrl+contentを送信しますLeftが、他のコンテンツ(^ A)を送信するように端末を再構成しました。

Ctrl+ Left^Aを送信する代わりに、または^[[1~^[OHエスケープ^[文字はどこにあります)を送信してください。同様に、^Eの代わりにCtrl+Right送信^[4~または作成を実行します。^[OFこれは通常Home、キーによってEnd送信されるエスケープシーケンスです。

関連情報