Linux 如何在gnu屏幕中绑定多个键,特别是使用箭头键

Linux 如何在gnu屏幕中绑定多个键,特别是使用箭头键,linux,terminal,ncurses,gnu-screen,terminfo,Linux,Terminal,Ncurses,Gnu Screen,Terminfo,首先,我使用的是Opensuse 13.2 64位和Arch_Linux 64位 无法让绑定为它们中的任何一个工作(好吧,我想要的绑定),但我主要关注的是Arch_Linux。另外,使用openbox wm、xfce4终端。(在opensuse中使用konsole和gnome 3)和my$TERM在my ~/.bashrc中设置为xterm-256color,在opensuse中使用screen时切换为screen-256color,但奇怪的是在Arch中没有更改 我想把C-a绑起来:聚焦向下,

首先,我使用的是Opensuse 13.2 64位和Arch_Linux 64位 无法让绑定为它们中的任何一个工作(好吧,我想要的绑定),但我主要关注的是Arch_Linux。另外,使用openbox wm、xfce4终端。(在opensuse中使用konsole和gnome 3)和my$TERM在my ~/.bashrc中设置为xterm-256color,在opensuse中使用screen时切换为screen-256color,但奇怪的是在Arch中没有更改

我想把C-a绑起来:聚焦向下,C-a向上:聚焦向上,C-a向左:聚焦向左等等。。让我们把注意力集中在下一刻。 我已经尝试了我的~/.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
但是,我还想使用箭头和AFAIK绑定多个键,-k选项只允许绑定一个键(或shift+left/right)。事实上,我很幸运,我甚至可以使用-k选项,因为它没有文档记录

现在我已经使用infocmp检查了我的kd(termcap)和kcud1(terminfo)

infocmp -1 | grep kcud1
    kcud1=\EOB,
infocmp -1C | grep kd
    :kd=\EOB:\
顺便说一句,这些符号可以查找(实际上我想你可以使用:man terminfo)

当我使用Ctrl-v并按下向下箭头时,我得到

 ^[[B

 showkey -a
 ^[[B    27 0033 0x1b
         91 0133 0x5b
         66 0102 0x42
任何人都知道怎么做。我想知道为什么没有-k termcap_名称就不能使用bind和/或如何使用组合键(如ctrl/alt)和termcap名称。谢谢你提供的所有信息

我也尝试过设置termcapinfo,但没有成功。别以为我用对了

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

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

GNU屏幕似乎不允许绑定多个键的序列

引用手册页:

绑定[-c类]键[命令[args]]

将命令绑定到密钥。

关键的论点要么是单一的 字符,形式为“^x”的两个字符序列(意思是 “C-x”),后接八进制数的反斜杠(指定 字符的ASCII码),或后跟字符的反斜杠 第二个字符,如“\ ^”或“\”。这一论点也可能是错误的 如果您愿意,可以引用。

如前所述,尝试:

bindkey“^A^[OB”向下聚焦

vim
技巧对于获取所需组合的代码非常有用(例如,如果您希望组合Ctrla Ctrldown而不是Ctrla down,则这将是
^[[1;5B
而不是
^[OB


原始答案应该归功于。

我想你遗漏了一些东西……”表格“^x”(意思是“C-x”)的两个字符序列。但我的问题是让bind to bind to cursor key向下,这是一个键。我的下一步是让它绑定到C-down。ThanksCursor key down是一个键,但它会发送多个字符(两个以上)。因此,您无法执行要求的操作。