次: , 前: Key Bindings, 上: Customization


28.5 キーボード変換

キーボードの機種によっては、Emacsが使用するすべての特殊文字を 送ってくれないものがあります。 もっともよくある問題は、<DEL>文字に関するものです。 いくつかのキーボードでは、 このきわめて重要な文字を簡単に打ち込む手段がありません。 それは、削除にはC-hを使うことを前提としているからです。 そのようなキーボードで削除のためのキーを打つと、 Emacsはそれをプレフィックス文字C-hとして解釈し、 どのヘルプ機能を使うか問い合わせてきてしまいます。 それはユーザーがしたかったことではありません。

Emacs内でこの問題を回避するには、C-hを<DEL>に、 <DEL>をC-hに変換するキーボード変換を 以下のように 設定することで回避できます。

     
     ;; C-hを<DEL>に変換する。
     (keyboard-translate ?\C-h ?\C-?)
     
     
     ;; <DEL>をC-hに変換する。
     (keyboard-translate ?\C-? ?\C-h)

キーボード変換はキーマップによるキーバインディング(see Keymaps)と 同じではありません。 Emacsには状況ごとに使い分けられる多数のキーマップがあるのに対し、 キーボード変換は一式だけしかなく、 Emacsが端末から読むすべての文字に対してその変換が適用されます。 キーボード変換は入力処理のいちばん下位のレベルで行われ、 キーマップ上の検索はキーボード変換を施した結果に対して行われます。

Xウィンドウシステムでは<DELETE>というキーはファンクションキーであり、 ASCII文字<DEL>とは別ものです。 See Named ASCII Chars。 キーボード変換はASCII文字入力だけに適用され、 ファンクションキーとは無関係ですから、 Xウィンドウシステムでは上の例は<DELETE>キーに対して効果をもたらしません。 しかし、Xウィンドウシステムでは上のようなキーボード変換そのものが不要です。 というのは、EmacsはXウィンドウシステムでは <BACKSPACE>キーとC-hも区別でき、 通常、<BAKSPACE>を<DEL>として扱うからです。

キーボード変換の使い方に関する詳しい情報は、 入力イベントの変換を 参照してください。