次: Function Keys, 前: Input Events, 上: Input Events
キーボードからは2種類の入力があります。 普通のキーとファンクションキーです。 普通のキーは文字に対応します。 それらが生成するイベントは、Lispでは文字として表現されます。 文字イベントのイベント型は文字自身(整数)です。 Classifying Eventsを参照してください。
入力文字イベントは、0から524287までの基本コード(basic code)と 以下の修飾ビット(modifier bit)の任意の組み合わせです。
C-aなどのASCIIコントロール文字には 独自の特別な基本コードがあるため、 Emacsはそれを表すための特別なビットを必要としない。 つまり、C-aのコードは単に1である。
しかし、コントロールキーを使った%などの
ASCIIにないコントロールとの組み合わせを打った場合、
得られる数値は%のコードに
を加えたものである
(端末で非ASCIIのコントロール文字を扱えるとして)。
英文字では、基本コードそのものが大文字か小文字かを表す。 数字文字と区切り文字では、 シフトキーは異なる基本コードのまったく異なる文字を選ぶ。 可能な限りASCII文字集合ですませるために、 これらの文字に対しては、Emacsはビット を使わない。
しかし、ASCIIではC-AとC-aを区別できないため、
Emacsは、C-Aではビット
を使うが、C-aではこのビットを使わない。
読者のプログラム内では、
特定の修飾ビットの値を明示することは避けるのが最良です。
文字の修飾ビットを検査するには、
関数event-modifiers
(see Classifying Events)を使います。
キーバインディングを作るときには、
(`\C-'、`\M-'などの)修飾ビットを伴う文字の
入力表現を使います。
define-key
でキーバインディングを作るときには、
文字の指定には(control hyper ?x)
のようなリストを使います
(see Changing Key Bindings)。
関数event-convert-list
は、そのようなリストを
イベント型に変換します(see Classifying Events)。