기능 키(F1-F12), 특히 F11 및 F12의 이스케이프 시퀀스

기능 키(F1-F12), 특히 F11 및 F12의 이스케이프 시퀀스

터미널 멀티플렉서를 사용하고 싶기 때문에 기능키( - ) byobu를 사용해야 합니다 . 하지만 SSH를 통해 원격 시스템에 액세스하므로 SSH를 통해 기능 키를 보내야 합니다. (저는 Ubuntu 10.04.4 LTS를 실행하고 있습니다.)F1F12

이 답변도착하다이 문제"터미널은 키가 아닌 문자만 이해한다"고 설명하므로 SSH를 통해 기능 키를 보내려면 이스케이프 시퀀스를 사용해야 합니다. 하지만 내 특정 플랫폼에서 제어 문자가 무엇인지 잘 모르겠습니다 F1. F12그래서 제안된 명령을 사용했습니다.답변:

for x in {1..12}; do echo -n "F$x "; tput kf$x | cat -A; echo; done

나는 다음과 같은 결과를 얻습니다.

F1 ^[OP
F2 ^[OQ
F3 ^[OR
F4 ^[OS
F5 ^[Ot
F6 ^[Ou
F7 ^[Ov
F8 ^[Ol
F9 ^[Ow
F10 ^[Ox
F11 
F12 

이는 연관된 이스케이프 시퀀스가 ​​없음 F11을 나타냅니다 . F12다른 프로그램에서 도용한 걸까요? 그렇다면 어떻게 다시 돌려받나요?

답변1

tput터미널에서 어떤 기능 키를 광고하는지 알려줍니다. 터미널은 일반적으로 지원하는 모든 기능 키와 키 코드를 게시하지 않습니다. 터미널에서 실제로 어떤 이스케이프 시퀀스가 ​​전송되는지 확인하려면 다음에서 언급된 Ctrl+ 메서드를 사용하세요.V같은 대답Ctrl: + 키를 다시 바인딩하지 않는 터미널 애플리케이션(예: 셸)에서 + 키를 누릅니다. + 문자 그대로 다음 문자(이스케이프 문자가 됨)를 삽입하면 일반 문자가 포함된 나머지 시퀀스를 볼 수 있습니다.VCtrlVCtrlV

Byobu가 터미널의 이스케이프 시퀀스를 올바르게 감지하지 못하는 경우 해당 정의를 복사하고 /usr/share/byobu/keybindings/f-keys.screen터미널 ~/.byobu/.screenrc과 일치하도록 이스케이프 시퀀스를 수정하세요. 예를 들어 Ctrl+ V F12insert 인 경우 ^[[24~다음을 추가합니다.

bindkey "^[[24~" process x

관련 정보