tput에서 Meta/Alt 키를 사용하는 방법은 무엇입니까?

tput에서 Meta/Alt 키를 사용하는 방법은 무엇입니까?

lisp 방언 명령줄에 대한 키 바인딩을 재정의하고 싶습니다. 명령줄은 실제로 Vi를 모델로 하고 tput/terminfo를 사용하여 구현됩니다. 나는 Emacs 키바인딩이 포함된 대체 버전을 원하며, gnu readline 등을 사용하지 않고 사용해 보고 싶습니다.

일반적인 키 할당은 다음과 같습니다.

(setq *XtF1 (in '("tput" "kf1") (line T)) ...

이 질문은

("tput" "kf1")

일부를 제외하고 나머지는 무시합니다. 이제 "kf1"은 terminfo 매뉴얼 페이지에서 쉽게 찾을 수 있습니다.

   key_f1                     kf1     k1    F1 function key

"meta"에도 3개의 항목이 있는 것으로 확인되었습니다.

   has_meta_key               km      km    Has a meta key
                                            (i.e., sets 8th-bit)

   meta_off                   rmm     mo    turn off meta mode
   meta_on                    smm     mm    turn on meta mode
                                            (8th-bit on)

하지만 이 정보를 사용하여 Mf, Mb, Md 등과 같은 tput을 통한 일반적인 Emacs 키 바인딩을 정의하려면 어떻게 해야 합니까?

답변1

terminfo는 아마도 당신에게 큰 도움이 되지 않을 것입니다. 대부분의 터미널 에뮬레이터에서는 M-x전송 <Esc>x또는 x비트 8 설정을 사용하여 구성하며, 사용자가 이를 수행하면 terminfo 항목이 마술처럼 업데이트되지 않습니다.

또한 요즘 대부분의 문자 세트는 8비트이므로 메타에 8번째 비트를 사용하는 것은 이제 별 의미가 없습니다.

M-x방금 ==(두 문자의 시퀀스 sum )를 하드코딩했습니다 <Esc>x. 이렇게 하면 터미널이 해당 모드를 지원하지 않더라도 사용자는 계속해서 를 순서대로 입력할 수 있습니다.\033xEscx

관련 정보