그리스어 스트레스 ( ')를 입력 할 때“<dead-acute> is undefined”문제가 나타남


11

나는 Emacs를 사용하기 시작했고 그리스어로 텍스트를 썼습니다. 문제는 일부 글자 (ό, ύ, ί, ύ)에 사용 된 스트레스가 작동하지 않는다는 것입니다!

일반적으로 ;(L 옆의 키를 누름)을 누른 다음 삽입 할 문자를 눌러 삽입합니다. 그리스어 키보드의 표준입니다. 내가 그것을 누르면 ;그것은 말합니다 :

<dead-acute> is undefined. 

C-h c ; 같은 것을 말합니다.

이 키를 사용하려면 어떻게해야합니까?

브라우저와 같은 다른 응용 프로그램에서 작동합니다. Ubuntu 14.04를 사용하고 emacs패키지 (Emacs 24.3.1)를 설치했습니다 .


나는 전에이 문제를 직접 경험했지만 원인이 무엇인지 기억할 수 없습니다. 운영 체제가 Emacs에 다른 키보드 레이아웃을 사용하고 있지 않은지 확인하십시오. 일부 OS는 응용 프로그램 별 키보드 레이아웃을 가질 수 있으므로 해당 키가 다른 곳에서 작동하더라도 시스템에서 문제가 발생할 수 있습니다. 그렇지 않다면 누군가 여기에 귀하의 답변이있을 것입니다. :-)
Malabarba

(이것이 도움이 될지 확실하지 않습니다.) OS 키보드 입력 모드에 따라이 문제가 있습니다. 기본 키보드 입력은 '데드 키 (dead keys)'를 사용하여 Â © çéñtß; 그러나 때로는 Emacs에서을 사용하여 (고대) 그리스어를 입력하고 싶습니다 greek-ibycus4. 일반 입력을 데드가 아닌 키 레이아웃으로 변경하여이 문제를 해결합니다 (예 :) setxkbmap -layout us. 그런 다음 Emacs에서 모드를 전환합니다. 그런 다음 ucsEmacs 의 입력 방법으로 다시 전환 setxkbmap -layout us -variant intl하고 죽은 키를 다시 실행 합니다. ... 이상적이지 않습니다 !! 하지만 그리스어도 자주 필요하지 않습니다.
jon

귀하의 의견에 감사하지만 문제는 그리스어로 스트레스가 기본이라는 것입니다. 거의 모든 단어에는 스트레스가 필요하며 다른 곳에서는 분명히 작동하므로 어떻게 해야할지 모르겠습니다.
Adam

@ 아담-나는 또한 물어야했다 : 우분투의 기본 키보드 레이아웃은 무엇입니까? 분명히 그리스어를 쓰고 있지 않으므로 OS 정의 키보드 레이아웃과 Emacs의 입력 방법이 일치하지 않을 수 있습니다. Emacs에 그리스어 악센트와 호흡을 쓰 려면 먼저 "우분투 키보드"를보다 일반적인 QWERTY 레이아웃으로 전환해야합니다. 아마도 당신은 비슷한 종류의 충돌이있을 것입니다. 터미널 setxkbmap -query에서 OS 키보드를 인쇄합니다. 또는 당신은 unity-control-panel내가 생각 하는 것을 볼 수 있습니다 .
jon

@jon 규칙 : evdev, 모델 pc105, 레이아웃 레이아웃, 그리스어를 작성할 때 레이아웃 : gr, us라고 말합니다.
Adam

답변:


6

추가하십시오 (require 'iso-transl)당신에 .emacs파일.


1
그것은 내가 시도한 첫 번째 일이며 작동하지 않습니다.
Adam

아, 죄송합니다. 나는 당신과 비슷한 문제가 있었고 그 줄을 추가하면 나를 위해 고쳤습니다.
Arthur Azevedo De Amorim

예, 이것이 일반적인 해결책이라는 것을 알고 있습니다!
Adam

5

광범위한 검색과 실험 끝에 스트레스를 사용하여 성공할 수있는 방법을 찾았습니다. 또한 최선의 방법은 아니라는 점에 유의해야합니다 (기술적으로는 문제를 해결하지 않지만 원하는 것을 얻습니다). 스트레스를 사용하는 모든 문자에 대해 다음 키 바인드 명령을 사용했습니다.

(global-set-key (kbd "<dead-acute> α") "ά")

(global-set-key (kbd "<dead-acute> ε") "έ")

기타...

누군가 더 나은 방법을 찾으면 분명히 타협하기 때문에 우리와 공유하는 것을 환영합니다.


1

운영 체제의 언어 전환을 무시하고 MULE을 사용하십시오.

Emacs에서을 누릅니다 C-\. 입력 방법을 요구합니다.

greek로 언어를 입력 한 다음 언어를 전환하십시오 C-\.


0

운영 체제 또는 Emacs의 인터페이스가 처리하는 대신 데드 키를 전달하는 경우 Emacs 자체에서 데드 키 조합을 변환 할 수 있습니다. 이를 input-decode-map위해 사용하십시오 :이 방법으로 키 시퀀스는 실제로 단일 키 누름으로 변환되고 명령 루프는를 참조하십시오 self-insert-command. 글로벌 맵에서 키를 매크로에 바인딩하는 것이 바람직합니다. 실행 취소 그룹과 같이 자체 삽입되는 텍스트 입력에 의존하는 메커니즘이 손상되기 때문입니다.

(define-key input-decode-map [dead-acute ?ο] ?ό)

다음과 같이 루프를 작성할 수 있습니다.

(mapc (lambda (string)
        (define-key input-decode-map (vector dead-acute (aref string 0)) (aref string 1)))
      '("οό" "υύ" "ιί"))
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.