0

まず、私は Opensuse 13.2 64 ビットと Arch_Linux 64 ビットを使用しています。バインドをどちらでも機能させることはできません (まあ、私が望むバインドです) が、主に Arch_Linux に集中しています。また、openbox wm、xfce4-terminal を使用します。(opensuse では konsole と gnome 3 を使用)、$TERM は ~/.bashrc で xterm-256color に設定されており、opensuse で screen を使用すると screen-256color に切り替えられますが、不思議なことに Arch では変更されません。

Ca down: フォーカスを下に、Ca up: フォーカスを上に、Ca left: フォーカスを左に、などとバインドしたいと思います。~/.screenrc ファイルですべてを試しました

bind "\E[B" focus down
bind "\EOB" focus down
bind "^[[B" focus down
bind "^[OB" focus down
bind "\033[B" focus down
bind "\033OB" focus down
bind "\033\133\102" focus down

bind j focus down # works fine

下矢印キーをキャッチするものは何もありません。私は以下を使用できます

bind -k kd focus down

ただし、矢印を使用して複数のキーをバインドしたいのですが、私の知る限り、-k オプションでは 1 つのキー (またはシフト + 左/右) のみをバインドできます。実際、文書化されていないため、 -k オプションを使用することもできて幸運です。

これで、infocmp を使用して kd (termcap) と kcud1 (terminfo) を確認しました

infocmp -1 | grep kcud1
    kcud1=\EOB,
infocmp -1C | grep kd
    :kd=\EOB:\

ところで、これらのシンボルは、termcapについてはここで、terminfoとその termcap の等価性についてはここで調べることができ ます (実際には、man terminfo を使用できると思います)。

Ctrl-v を使用して下矢印を押すと、

 ^[[B

 showkey -a
 ^[[B    27 0033 0x1b
         91 0133 0x5b
         66 0102 0x42

誰でもこれについて行く方法を知っています。-k termcap_name なしで bind を使用できない理由、および/またはキー (ctrl/alt など) と termcap 名の組み合わせを使用する方法を知りたいです。すべての情報をありがとう。

termcapinfo も設定しようとしましたが、うまくいきませんでした。私はそれを正しく使っているとは思わない。

termcapinfo * kd=\EOB
bind "\EOB" focus down

termcapinfo * kd=\E[B
bind "\E[B" focus down
etc...
4

2 に答える 2

0

GNU screen では、複数のキーのバインド シーケンスが許可されていないようです。

マニュアルページを引用:

バインド [-c クラス] キー [コマンド [引数]]

コマンドをキーにバインドします。
...
key 引数は、1 文字、"^x" ("Cx" を意味する) の形式の 2 文字シーケンス、バックスラッシュの後に 8 進数 (文字の ASCII コードを指定)、またはバックスラッシュの後に「\^」や「\」などの 2 番目の文字が続きます。必要に応じて、引数を引用することもできます。
...

于 2015-05-02T19:22:16.170 に答える