터미널에서 Emacs를 실행하려고합니다. 터미널 환경 설정에서 "메타로 사용 옵션"을 설정했으며 약 95 %가 올바르게 작동합니다.
키 시퀀스 ctrl-/ (또는 Emacs 표기법 C- /)는 "실행 취소"입니다. 이 키 시퀀스는 터미널이 벨을 울리게합니다. 이 문제를 어떻게 해결합니까?
터미널에서 Emacs를 실행하려고합니다. 터미널 환경 설정에서 "메타로 사용 옵션"을 설정했으며 약 95 %가 올바르게 작동합니다.
키 시퀀스 ctrl-/ (또는 Emacs 표기법 C- /)는 "실행 취소"입니다. 이 키 시퀀스는 터미널이 벨을 울리게합니다. 이 문제를 어떻게 해결합니까?
답변:
Control- /
은 표준 제어 코드 세트의 일부가 아닙니다 . 많은 터미널 에뮬레이션에서 키 입력으로 직접 표현할 수는 없습니다. 이러한 키 스트로크는 특정 플랫폼 별 "스캔 코드 모드"또는 "GUI 모드"(API가 사용중인 키와 수정자가 정확히 무엇인지 알려줍니다)에서만 올바르게 감지 할 수 있습니다. 터미널 에뮬레이터가 유효하지 않은 키 입력이기 때문에 신호음이 울립니다.
표준 제어 코드는 "제어"버전에만 적용됩니다.
@
A
– Z
[\]^_
(ASCII 0-31) 및?
(ASCII 127)대부분의 미국 키 레이아웃으로 실행되는 대부분의 터미널 에뮬레이터 프로그램에서 Shift일부 "제어 코드"를 생성 하려면을 눌러야 합니다.
@
이다 Shift2)^
이다 Shift6)_
이다 Shift-)?
입니다 Shift/); 씨-? 일반적으로 Backspace(Apple 키보드에서는 추가 기호 ⌦없이“삭제”라고 표시된 키) 또는 Delete(Apple 키보드에서 ⌦가 있는 키)에 의해 생성됩니다 .tty 기반 Emacs에서는 일반적 undo
으로 C- / 대신 C-_를 사용할 수 있습니다 .
Ctrl- /는 VT102부터 Ctrl-_에 해당하는 0x1f를 보냅니다. VT100 에뮬레이터는 많지만 실제로는 VT102 에뮬레이터입니다. iTerm2는이 동작을 따르기 때문에 작동합니다.
VT100 사양을 엄격하게 준수하는 에뮬레이터 만 Ctrl- /를 보낼 수 없습니다. 터미널 응용 프로그램 중 하나라고 생각합니다.
VT100은 제어 키를 누를 때 7 비트 ASCII의 최상위 2 비트를 마스킹합니다. /는 0x2f이고 o는 0x6f입니다. 2 비트가 마스킹되면 둘 다 0x0f입니다. VT100은 Ctrl-o를 보낼 수 있지만 Ctrl- /는 보낼 수 없습니다.