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
。
また見なさい: