tty의 htop에 기능 키를 전달하는 방법은 무엇입니까?

tty의 htop에 기능 키를 전달하는 방법은 무엇입니까?

tty1에서 사용 하려고합니다 htop. 그러나 일부 기능 키가 제대로 작동하지 않는 것 같습니다. 아무것도 하지 않고 F1설정 을 트리거하는 것 같습니다(일반적으로 트리거되어야 함 ). 또한 작동 하지 않습니다. 또한 이 화면을 종료하려고 누르면 두 번 눌러야 합니다.F2F3F2F4F5Esc

일반 터미널( terminator)에서는 기능키가 잘 작동합니다. 하지만 여기도 두 번 눌러야 하므로 Esc그게 트릭일 수도 있습니다.

tty1에서 이러한 기능 키를 어떻게 사용합니까?

편집하다

tty1에서 Ctrl+를 누른 v다음 F1등을 누르면 F5다음과 같은 결과가 나타납니다.

^[[[A
^[[[B
^[[[C
^[[[D
^[[[E

에서 terminator나는 얻는다.

^[OP
^[OQ
^[OR
^[OS
^[[15~

위의 기능 키는 동일합니다(예 ^[[17~: F6).

편집 2

스테판 차젤라스(Stéphane Chazelas)에 대한 응답논평.

  • $TERMtty1에 있는 것은 나의 "정상적인" 작업 터미널과 동일합니다. 이것은 xterm-256color.
  • 나는 screen이나 tmux를 사용하지 않습니다.
  • 나는 htop1.0.3을 사용하고 있지만 처음 편집한 내용은 htop.

infocmp -L1 | grep key_f이 열쇠가 당신에게 보낸 열쇠와 일치합니까?

"이 키가 보내는 것과 일치한다"는 것이 무슨 뜻인지 잘 모르겠지만 일반 터미널과 tty1에서 이 명령을 실행했는데 출력은 아래와 같습니다.

key_f1=\EOP,
key_f10=\E[21~,
key_f11=\E[23~,
key_f12=\E[24~,
key_f13=\E[1;2P,
key_f14=\E[1;2Q,
key_f15=\E[1;2R,
key_f16=\E[1;2S,
key_f17=\E[15;2~,
key_f18=\E[17;2~,
key_f19=\E[18;2~,
key_f2=\EOQ,
key_f20=\E[19;2~,
key_f21=\E[20;2~,
key_f22=\E[21;2~,
key_f23=\E[23;2~,
key_f24=\E[24;2~,
key_f25=\E[1;5P,
key_f26=\E[1;5Q,
key_f27=\E[1;5R,
key_f28=\E[1;5S,
key_f29=\E[15;5~,
key_f3=\EOR,
key_f30=\E[17;5~,
key_f31=\E[18;5~,
key_f32=\E[19;5~,
key_f33=\E[20;5~,
key_f34=\E[21;5~,
key_f35=\E[23;5~,
key_f36=\E[24;5~,
key_f37=\E[1;6P,
key_f38=\E[1;6Q,
key_f39=\E[1;6R,
key_f4=\EOS,
key_f40=\E[1;6S,
key_f41=\E[15;6~,
key_f42=\E[17;6~,
key_f43=\E[18;6~,
key_f44=\E[19;6~,
key_f45=\E[20;6~,
key_f46=\E[21;6~,
key_f47=\E[23;6~,
key_f48=\E[24;6~,
key_f49=\E[1;3P,
key_f5=\E[15~,
key_f50=\E[1;3Q,
key_f51=\E[1;3R,
key_f52=\E[1;3S,
key_f53=\E[15;3~,
key_f54=\E[17;3~,
key_f55=\E[18;3~,
key_f56=\E[19;3~,
key_f57=\E[20;3~,
key_f58=\E[21;3~,
key_f59=\E[23;3~,
key_f6=\E[17~,
key_f60=\E[24;3~,
key_f61=\E[1;4P,
key_f62=\E[1;4Q,
key_f63=\E[1;4R,
key_f7=\E[18~,
key_f8=\E[19~,
key_f9=\E[20~,

답변1

설정:

export TERM=xterm-256color

htop귀하의 터미널은 Linux 가상 콘솔이 아닌 256색 xterm임을 알려줍니다 (termcap 또는 terminfo 데이터베이스를 사용하는 다른 모든 시각적 터미널 응용 프로그램 포함).

htopterminfo 데이터베이스는 전송된 문자 순서에 대해 쿼리되지만 F1... F2문자는 검색됩니다 xterm.

xterm이러한 키의 경우 전송된 시퀀스가 ​​Linux 가상 콘솔과 다릅니다. 예를 들어 terminfo 데이터베이스를 수동으로 쿼리하여 이러한 키를 확인할 수 있습니다 infocmp.

$ infocmp -L1 xterm-256color | grep 'key_f[1-5]='
        key_f1=\EOP,
        key_f2=\EOQ,
        key_f3=\EOR,
        key_f4=\EOS,
        key_f5=\E[15~,
$ infocmp -L1 linux | grep 'key_f[1-5]='
        key_f1=\E[[A,
        key_f2=\E[[B,
        key_f3=\E[[C,
        key_f4=\E[[D,
        key_f5=\E[[E,

따라서 로 htop인식되지 않고 그렇게 될 것으로 예상됩니다 .\E[[AF1\EOP

$TERM여기서는 in 에 값을 할당 하고 싶지 않습니다 ~/.bashrc. 터미널 에뮬레이터( , ) 자체와 Linux 가상 콘솔(있어야 함)에 의해 설정되어야 합니다 $TERM.xtermterminatorgettylinux

특정 터미널 에뮬레이터에서 선택한 값이 만족스럽지 않으면 $TERM해당 터미널 에뮬레이터의 구성을 업데이트해야 합니다.

관련 정보