이맥스 C-. 터미널에서 작동하지 않습니다


11

나는 GNU Emacs를 사용하는데, 보통 emacs -nw창 버전 GUI와는 반대로 터미널 버전을 시작한다.

학교 문서를 작성 LaTeX하여 flyspell-modeemacs 내에서 철자 검사에 사용 합니다. 이것은 GUI 버전에서는 잘 작동하지만 터미널에서는 키 입력 C-.( Ctrl- .) 에 문제가 있습니다. tty에서 이것은 아무것도하지 않으며 terminatoror 또는 gnome-terminal에서는 단순히 "."를 입력합니다.

윈도우 버전에서 수행하는 작업을 수행하려면 어떻게해야합니까 (철자가 틀린 단어에 대한 철자 제안 표시)?

편집 : 이것이 중요한 경우, 나는 Emacs 23.3.1과 함께 우분투 12.04를 사용하고 있습니다 (12.04 저장소의 기본값이라고 생각합니다).


1
여기도 마찬가지입니다. 당신은 시도해 봤어 Esc- x flyspell-mode? 이것은 나를 위해 작동합니다.
Masroor

그래 나는 항상 시작 flyspell-mode으로 M-x,하지만 ESC x변화를하지 않는 것.
cg505

1
여기도 마찬가지입니다. 그러나 두 버전 모두에서 작동하는 기본 키 바인딩을 발견했습니다 ESC-TAB.
McNisse

네, ESC TAB또는 M-TAB둘 다 나를 위해 일합니다. 팁 @McNisse에 감사드립니다.
cg505

답변:


4

이 질문의 중요한 부분은 이미 의견에 답변 된 것처럼 보이지만 궁금한 경우 근본 원인을 해결하기 위해 ctrl-라고 생각합니다. 터미널 에뮬레이터의 일부 제한으로 인해 터미널에서 작동하지 않습니다. 표준 터미널에서 ctrl은 마이너스 64를 누르는 키의 ASCII 코드를 보내도록 정의되어 있습니다 (예 : ctrl-J (74)는 줄 바꾸기 (10)를 보내고 ctrl-I (73)는 탭 (9)를 보냅니다) ). 마침표의 ASCII 코드가 46이므로 64를 빼면 -18이됩니다. -18이므로 음수가 아니므로 음의 ASCII 코드가 없으므로 emacs가 수신하고 이해하지 못합니다.

윈도우 모드에서 emacs를 실행하면 터미널 에뮬레이터 메커니즘이 무시되고 대신 X11의보다 강력한 키보드 처리가 사용됩니다.이 키 처리를 사용하면 각 키 입력을 하나의 ASCII 문자로 줄이지 않고 더 모호한 키 입력을 처리 할 수 ​​있습니다. 모든 적용 가능한 수정 자 포함). 따라서 tty 기반 emacs가 ctrl-를 처리하도록하는 것은 불가능합니다. 터미널 에뮬레이터 (및 아마도 emacs)를 사용자 정의 수정하지 않는 한.


1
이 답변은 정말 흥미 롭습니다. 더 깊이 파고 들어 DEC VT100이 비슷하지만 다르게 작동한다는 것을 알았습니다. 제어 키와 다른 키를 함께 누를 때 수행되는 작업은 다음과 같습니다. 1) 키보드 스캔 코드로 ASCII 테이블 조회 2) ASCII로 유효한 제어 코드 테이블 조회 3) 유효한 경우 ASCII 4의 마스크 비트 5와 비트 6 ) 발송. 따라서 ctrl-J, ctrl-j 및 ctrl- *는 모두 LF를 보낼 수 있지만 유효성 검사는 조합을 제한했습니다. 참조 12월 VT100 기술 매뉴얼 섹션 4-43 (PDF 페이지 93).
Kenji Noguchi

'C-.'xterm에서는 emacs로만 캡처 할 수 있지만 urxvt 또는 st로는 캡처 할 수 없습니다. 왜 그런지 알 수 있습니까?
stewSquared.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.