추가 읽기

추가 읽기

~에 따르면이 터미널 에뮬레이터와 해당 키코드 테이블, XTerm의 새 버전은 F1, F2, F3...에서 F63까지 기능 키를 인식할 수 있습니다. 대부분의 키보드에는 F1~F12 범위의 물리적 기능 키만 있습니다. 추가 열쇠는 무엇입니까? 물리적 키나 마우스 누르기에서 이러한 기능 키 번호로의 일부 (반)표준 매핑이 있습니까? 그렇지 않은 경우 어떻게 트리거됩니까?

내 생각에는 전통적인 터미널 용어로 화살표 키, home/end 등을 포함한 모든 특수 키를 기능 키라고 부르는 것 같습니다(반면 PC에서 자란 사람들은 F1..F12를 기능 키로만 생각합니다) 키) . 그러나 XTerm은 이러한 명명된 키를 별도로 설명합니다(예: kUP이 표의 위쪽 화살표 키).

답변1

DEC VT는 기능 키와 다양한 커서 및 편집 키를 나타내며 제어 순서는 DECFNK라고 하며 CSI 뒤에 하나 또는 두 개의 매개변수가 뒤따르고 ~. 첫 번째 매개변수는 기능 키 번호입니다. 두 번째 매개변수는 활성 수정자 키 상태를 나타냅니다.

DECFNK의 경우 기능키는 최대 20개까지 가능합니다. 기능 키 1~20에 대한 DECFNK 코드는 명확하게 정의되고 문서화되어 있습니다. 결국 LK 키보드에는 실제로 20개의 기능키가 있습니다. (기능키가 여러개 있어도대개아니요, 그럴 수 있습니다.잠재적으로둘 다 DECFNK 시퀀스를 생성하며 해당 시퀀스는 DEC doco에 있습니다. ) 이것은 DEC VT420용 LK401 키보드입니다.

LK401 키보드

표에서 볼 수 있듯이 원래 DECFNK 시퀀스를 생성하는 시뮬레이터는 이러한 20개 키에 대해 DECFNK 11부터 DECFNK 34까지 방출합니다. (일부 DECFNK 숫자는 건너뛰었습니다. 흥미롭게도 건너뛴 숫자는 키보드의 기능 키 행에 있는 키 그룹 사이의 물리적 공간에 해당합니다.)

상황이 복잡해진 곳은 PC와 XENIX의 도입이었습니다. IBM PC(특히 PC 3270)의 세계에는 F형 키보드에 24개의 기능 키가 있습니다. PC/AT의 고급 키보드에는 12개의 기능 키가 있는데 그 중 절반만 있습니다. 3270 F타입 키보드입니다.

122키 IBM F형 키보드

F13수정자의 조합을 사용하여 PC/AT 키보드에서 에서 까지의 기능 키에 액세스할 수 있는 터미널 에뮬레이션 규칙이 등장했습니다 . 와 의 4가지 조합을 통해 F24,⎈ Control⇧ Level 2 Shift오직향상된 키보드의 12개 기능 키는 48개의 기능 키를 시뮬레이션할 수 있습니다. 이는 48개의 서로 다른 제어 시퀀스를 생성하는 XENIX 콘솔의 경우입니다.

테이블의 다른 열에서 무슨 일이 일어나고 있는지 관찰할 수 있습니다. (예를 들어) F6, F18, F30의 제어 시퀀스는 F42모두 DECFNK 17이고, 두 번째 매개변수의 수정자 비트 플래그는 서로 다른 값을 갖습니다.

또한 동일한 열에서 F1to F5는 DECFNK 제어 시퀀스가 ​​아닙니다. 이는 PC 키보드의 에뮬레이터 규칙에 따라 달라집니다. DEC LK 키보드 F1에서는F5 했다DECFNK 시퀀스가 ​​할당되었으며할 수 있다생성되지만 일반적으로 호스트에 대한 입력을 생성하지 않는 "로컬" 모드에서 실행됩니다. 시뮬레이터는 이러한 DECFNK 시퀀스를 생성하고 시뮬레이션할 필요가 없습니다 F1. F5왜냐하면 이러한 키에 의존하는 애플리케이션이 거의 또는 전혀 없기 때문입니다. 그러나 시뮬레이터는 그 반대입니다.했다PF1계산기 키보드의 키 세트 는 실제 DEC 키보드에서 에뮬레이션되어야 PF4하지만 PC 키보드에는 그런 기능이 없습니다. 이것들키는 DECFNK 시퀀스를 생성하지 않으며 실제 기능 키가 아닙니다. 다른 계산기 키와 마찬가지로 SS3 제어 시퀀스를 생성합니다.

(일부 SS3 시퀀스의 형식이 잘못되었습니다. "SS"는 "단일 시프트"를 의미하며 이러한 시프트는 단일 후속 문자에 적용됩니다. SS3에 수정자 인수를 추가하는 XTerm 제어 시퀀스는 실제로 제대로 구성된 SS3 시퀀스가 ​​아닙니다. True DEC 터미널 계산기 키 제어 시퀀스에는 보고 수정자 없음).

이는 아날로그 터미널에 설정된 기능 키 제어 순서가 최대 48개 기능 키일 수 있는 방법을 설명합니다. 64개의 제어 시퀀스를 해석하려면 DECFNK 시퀀스의 수정자 매개변수를 참고하세요. 추가 12개 제어 시퀀스의 경우 수정 3자로 표시 됩니다 ⎇ Alt.

실제로 VT 제어 시퀀스 프로토콜에서 인식되는 세 가지 수정자 에는 총 8개의 가능한 조합이 있습니다 ⎈ Control. 따라서 이러한 터미널 에뮬레이터 규칙을 기반으로 PC/AT 강화 키보드는 96개의 서로 다른 DECFNK 제어 시퀀스를 가질 수 있고 DEC LK 키보드는 160개의 서로 다른 DECFNK 제어 시퀀스를 가질 수 있습니다.⇧ Level 2 Shift⎇ Alt

추가 읽기

답변2

xterm은 실제로 그 이상을 지원합니다.64기능 키(를 통해옮기다,제어,대리자,수정자). 이것64terminfo에 정의된 이식 가능 세트입니다(그리고X/열린 저주). 세트의 첫 번째는kf0(혼란스럽기 때문에 거의 사용되지 않습니다.)

사람들이 다양한 키 조합을 구별할 수 있기를 원하기 때문에 이렇게 합니다(모든 사람이 emacs 사용자는 아니지만 도움이 됩니다). 완전히 새로운 terminfo 기능 세트를 개발하지 않고도 xterm을 확장하여 사전 정의된 64개의 terminfo 이름을 사용하는 것만으로도 충분한 솔루션입니다.

ncurses와 함께'관습키, xterm 터미널 설명은 이보다 많지만 여전히 실제 제한보다 적습니다. PC 키보드의 12개 키에 대해 조합을 곱하면 구성에 따라 8*12 또는 16*12가 됩니다.대리자그리고.

동일한 수정자 세트가 4개의 커서 키와 6개의 편집 키에 적용됩니다.

수정자는 차례로 다음과 같습니다.수정됨(다르게 줘세트이스케이프 시퀀스). xterm의 다양한 빌딩 블록용어 정보출처에는 다음과 같은 내용이 나와 있습니다(예:xterm+pcf0,xterm+pcf1등) 가능성이 높아지고 있습니다.

그런데 사람이 없네...

그런데 기본적으로 실제 VT220은 처음 5개의 기능 키에 대해 아무 것도(유용하지) 않습니다. 그러나 그것은 또 다른 이야기입니다.

PC의 경우 수정자에 Shift/Control/Alt를 사용하는 것은 구식입니다. ncurses에는 몇 가지 터미널 설명이 있습니다.운영 체제/2이 접근법도 사용하십시오상하이협력기구(동일한 하드웨어).

답변3

VT220과 같은 이전 DEC ASCII 터미널과 관련이 있습니다.

http://www.columbia.edu/kermit/k95vtfk.html

기능 키는 메인프레임 컴퓨터에서 실행되는 텍스트 기반 프로그램과 상호 작용하는 데 사용됩니다.

터미널과 호스트 사이의 연결은 일반적으로 직렬입니다.

F 키를 누르면 터미널은 일반적으로 ESC 문자로 시작하는 일련의 ASCII 코드를 전송합니다.

F 키는 최신 컴퓨터에서 사용되는 단축키와 유사합니다.

예를 들어 F1은 화면에 메뉴를 표시하는 키일 수 있습니다.

Shift 및 Control 키를 F 키와 결합하면 F21-F64가 생성됩니다.

예를 들어, F21을 생성하려면 Shift-F1을 누르십시오. (아마 ctrl-F1) F61 ctrl-shft-F1과 유사

관련 정보