독일어 키보드를 사용할 때 일부 키가 emacs에서 작동하지 않습니다

독일어 키보드를 사용할 때 일부 키가 emacs에서 작동하지 않습니다

KDE에서 emacs 23.3을 사용할 때 독일어 키보드로 입력할 수 없습니다 ^. 이 키를 누르면 emacs는 , 및 정의되지 않았다고 말합니다.´~<dead-circumflex><dead-acute><dead-tilde>

Konsole, Kwrite 및 firefox와 같은 다른 응용 프로그램에서 , 를 ^입력 할 수 ´있고 ~emacs에 문자를 붙여넣을 수도 있습니다.

나는 시도했다Cx ret C-\latin-1-postfix를 입력하세요., 그러나 변화는 없습니다.

누구든지 이 문제를 해결하는 방법을 말해 줄 수 있나요?

답변1

이 문제의 원인이나 해결 방법을 모르지만 대부분의 경우 해결 방법을 제공할 수 있습니다.

일반적으로 데드 키는 Lisp에서도 볼 수 없는 매우 낮은 입력 수준에서 처리됩니다. 하지만 Lisp에서는 할 수 있습니다.

이러한 키가 데드 키로 작동하도록 하려면 다음을 수행하십시오.

Lisp에는 ASCII가 아닌 문자를 입력할 수 없는 시스템의 8비트 문자 집합용으로 설계된 데드 키에 대한 제한된 메커니즘이 이미 존재합니다. C-x 8다음에 악센트와 문자를 입력하면 해당 악센트 문자가 삽입됩니다.iso-transl도서관. 우리는 이 메커니즘을 복제할 수 있습니다. 이것을 당신의 .emacs:

(define-key key-translation-map [dead-grave] (lookup-key key-translation-map "\C-x8`"))
(define-key key-translation-map [dead-acute] (lookup-key key-translation-map "\C-x8'"))
(define-key key-translation-map [dead-circumflex] (lookup-key key-translation-map "\C-x8^"))
(define-key key-translation-map [dead-diaeresis] (lookup-key key-translation-map "\C-x8\""))
(define-key key-translation-map [dead-tilde] (lookup-key key-translation-map "\C-x8~"))
(define-key isearch-mode-map [dead-grave] nil)
(define-key isearch-mode-map [dead-acute] nil)
(define-key isearch-mode-map [dead-circumflex] nil)
(define-key isearch-mode-map [dead-diaeresis] nil)
(define-key isearch-mode-map [dead-tilde] nil)

지도key-translation-map입력하는 동안 키 시퀀스를 다시 작성하므로 이는 dead ` a대부분의 목적에 동일합니다. à항목을 명시적 isearch-mode-map으로 설정하는 nil것이 필요합니다. 그렇지 않으면 데드 키를 누르면 번역이 시작되기 전에 isearch가 종료됩니다.

악센트 문자를 즉시 ​​삽입하고 싶은 경우

(define-key key-translation-map [dead-grave] "`")
(define-key key-translation-map [dead-acute] "'")
(define-key key-translation-map [dead-circumflex] "^")
(define-key key-translation-map [dead-diaeresis] "\"")
(define-key key-translation-map [dead-tilde] "~")

답변2

(require 'iso-transl)파일에 추가해 보세요 .emacs.
또한보십시오:

관련 정보