如何映射和编译某些终端的terminfo?

如何映射和编译某些终端的terminfo?

我有 urxvt 终端。
手动设置以下内容后,它可以正常工作:

usr @ archlinux ~ : typeset -g -A key      
usr @ archlinux ~ : key[Home]="${terminfo[khome]}"
usr @ archlinux ~ : [[ -n ${key[Home]} ]] && bindkey "${key[Home]}" beginning-of-line
usr @ archlinux ~ : echo ${terminfo[khome]}                                          
usr @ archlinux ~ : ^[[7~  # Ctrl-V, Home pressings

但在简单的终端“st”中,在使用(默认值)编译后:

生成文件

tic -sx st.info

配置文件

{ XK_Home,          ShiftMask,      "\033[2J",       0,   -1},
{ XK_Home,          ShiftMask,      "\033[1;2H",     0,   +1},
{ XK_Home,          XK_ANY_MOD,     "\033[H",        0,   -1},  
{ XK_Home,          XK_ANY_MOD,     "\033[1~",       0,   +1},
{ XK_End,           ControlMask,    "\033[J",       -1,    0},
{ XK_End,           ControlMask,    "\033[1;5F",    +1,    0},
{ XK_End,           ShiftMask,      "\033[K",       -1,    0},
{ XK_End,           ShiftMask,      "\033[1;2F",    +1,    0},
{ XK_End,           XK_ANY_MOD,     "\033[4~",       0,    0},

圣信息

home=\E[H,
khome=\E[1~,
kend=\E[4~,

按键后我只有“~”。

答案1

圣的术语信息文件(如上所述ncurses 邮件列表)已损坏,尝试使用它时会发生奇怪的事情。

具体来说,此提交由于省略了功能值而导致了问题:

commit 06f8cf8ca87a81db15816658c40b2afcd1ad5332
Author: [email protected] <[email protected]>
Date:   Fri Nov 11 17:45:46 2016 +0100

    Add tmux capabilities to st.info

有一个最新ncurses 中的终端描述,st 开发人员对此有点慢(即将推出)3年)。

(这ncurses 常见问题解答显示了提取特定条目的示例)。

相关内容