Linux

如何為某些終端映射和編譯 terminfo?

  • November 4, 2019

我有 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},

st.info

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

按鍵後我只有’〜’。

st 的terminfo文件(如ncurses 郵件列表中所述)已損壞,嘗試使用它時會發生奇怪的事情。

具體來說,此送出通過省略功能值導致了一個問題:

commit 06f8cf8ca87a81db15816658c40b2afcd1ad5332
Author: pl@ninthfloor.org <pl@ninthfloor.org>
Date:   Fri Nov 11 17:45:46 2016 +0100

   Add tmux capabilities to st.info

在 ncurses 中有一個最新的終端描述,st 開發人員對此有點慢(即將3年)。

ncurses FAQ顯示了一個提取特定條目的範例)。

引用自:https://unix.stackexchange.com/questions/550247