ドイツ語キーボードを使用すると、一部のキーが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] "~")

おすすめ記事