그리스어 스트레스 ( ')를 입력 할 때“<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.