GNU画面で「tab」と「shift + tab」をバインドする方法は?

GNU画面で「tab」と「shift + tab」をバインドする方法は?

キーTabShiftTab画面をバインドする方法は?私の問題は、bindこれらのキーストロークを指定するために画面コマンドに何を渡すべきかわからないということです。

ところで、私も知っていますGNU画面:地域間移動しかし、答えは存在しません。

次の操作はすべてエラーのため失敗します-X: bind: character, ^x, or (octal) \032 expected

screen -X bind "\033[Z" focus up
screen -X bind "^[[Z" focus up
screen -X bind "\t" focus up
screen -X bind \033[Z focus up
screen -X bind ^[[Z focus up
screen -X bind \t focus up

Enterコマンドを押すとCtrlA:同じことが起こります。

ベストアンサー1

bindkey指定された文字シーケンスを使用するのとは異なり、bindこれを行う唯一の方法は、機能が重要な場合はbind -k CAPCAPを使用することです。termcap

例えば、

bind -k ku focus up

Upに送信された文字シーケンスをバインドするために使用されますfocus up。 [背景]タブの場合は、次のようにする必要があります。

bind -k kB focus up

残念ながら何らかの理由で動作しないようです。なぜか分からない。私の最初の説明は間違っています。これはncursestermcap等価物が正しく処理されないことに関連しているようですkcbt

$ infocmp -1 | grep Z
    cbt=\E[Z,
    kcbt=\E[Z,
$ infocmp -1C | grep Z
    :bt=\E[Z:\

(kcbtはkBに変換されません)。

私のアイテムに追加する場合~/.screenrc

 termcapinfo * kr=\E[Z
 bind -k kr focus up

言い換えれば、私がscreenあなたにそう言うなら、所有者端末(*)、送信F63kr\E[Z、およびバインディングをF63実行するfocus upだけです。しかし、今押すとShift+Tab送信されます。画面内 \EOC、これは端末エミュレータによって表示される文字列です。画面(ホスト端末とは対照的に)送信を実装しますF63

おすすめ記事