특정 터미널에 대해 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 개발자는 이에 대해 약간 느립니다(곧 제공 예정).년도).

(이것ncurses FAQ특정 항목을 추출하는 예를 보여줍니다).

관련 정보