私はiTerm2
Macでcontrol+←とcontrol+を使って押したときに→16進数を転送するようにカスタマイズしました。これにより、コマンドを入力または編集すると、カーソルが行の先頭と終わり(一度に1語の代わりに)に移動します。 - そして、このキーに加えて、矢印はカーソルを一度に1単語ずつ移動します。0x01
0x05
alt
これは、スクリーンセッションを開始するまでSSHを使用すると、リモートLinuxシステムでうまく機能します。 +はまだうまく機能しますが、+を使用しようとすると、ステータスcontrol領域に次のメッセージが表示されます。→control←screen
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送信されるエスケープシーケンスです。