次: , 前: Keyboard Events, 上: Input Events


20.5.2 ファンクションキー

ほとんどのキーボードには、ファンクションキー(function key)、 つまり、文字ではない名前や記号のキーがあります。 Emacs Lispでは、ファンクションキーはシンボルで表現されます。 シンボルの(小文字の)名前がファンクションキーのラベルです。 たとえば、<F1>というラベルのキーを押すと、 入力ストリームにはシンボルf1が置かれます。

ファンクションキーイベントのイベント型は、イベントシンボルそれ自身です。 See Classifying Events

ファンクションキーに対するシンボル命名慣習の特例を以下に示します。

backspace, tab, newline, return, delete
これらのキーは、ほとんどのキーボードにある特別なキーを持つ 一般的なASCIIコントロール文字に対応する。

ASCIIでは、C-iと<TAB>は同じ文字である。 これらを区別できる端末では、前者を整数9、後者をシンボルtabと 表現することで、EmacsはLispプログラムに区別を伝える。

ほとんどの場面では、これら2つを区別しても有用ではない。 そのため、通常、function-key-map(see Translating Input)は、 tabを9に対応付けるようには設定してある。 したがって、文字コード9(文字C-i)に対するキーバインディングは tabにも適用される。 この種の他のシンボルについても同様である。 関数read-charも同様にこれらのイベントを文字に変換する。

ASCIIでは、<BS>は実際にはC-hである。 しかし、backspaceは文字コード127(<DEL>)に変換され、 文字コード8(<BS>)には変換されない。 ほとんどのユーザーはこれを好む。

left, up, right, down
カーソル矢印キー
kp-add, kp-decimal, kp-divide, ...
(普通のキーボードの右側にある)キーパッドのキー。
kp-0, kp-1, ...
キーパッドの数字キー。
kp-f1, kp-f2, kp-f3, kp-f4
キーパッドのPFキー
kp-home, kp-left, kp-up, kp-right, kp-down
キーパッドの矢印キー。 Emacsは、通常、これらを対応するキーパッドのものではない homeleft...のキーに変換する。
kp-prior, kp-next, kp-end, kp-begin, kp-insert, kp-delete
普通のキーに対応するキーパッドのキー。 Emacsは、通常、同じ名前のキーパッドのものではないキーに変換する。

ファンクションキーにも<ALT>、<CTRL>、<HYPER>、 <META>、<SHIFT>、<SUPER>の修飾キーを使えます。 それらを表現するには、シンボル名に接頭辞を付けます。

`A-'
アルト修飾。
`C-'
コントロール修飾。
`H-'
ハイパー修飾。
`M-'
メタ修飾。
`S-'
シフト修飾。
`s-'
スーパー修飾。

したがって、<META>を押し下げた<F3>キーのシンボルはM-f3です。 複数の接頭辞を使うときには、アルファベット順に書くことを勧めますが、 キーバインディングの探索関数や修飾関数の引数では関係ありません。