Next: Mouse Events, Previous: Keyboard Events, Up: Input Events
ほとんどのキーボードには、ファンクションキー(function key)、
つまり、文字ではない名前や記号のキーがあります。
Emacs Lispでは、ファンクションキーはシンボルで表現されます。
シンボルの(小文字の)名前がファンクションキーのラベルです。
たとえば、<F1>というラベルのキーを押すと、
入力ストリームにはシンボルf1
が置かれます。
ファンクションキーイベントのイベント型は、イベントシンボルそれ自身です。 See Classifying Events。
ファンクションキーに対するシンボル命名慣習の特例を以下に示します。
backspace
, tab
, newline
, return
, delete
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
kp-home
, kp-left
, kp-up
, kp-right
, kp-down
home
、left
、...のキーに変換する。
kp-prior
, kp-next
, kp-end
, kp-begin
, kp-insert
, kp-delete
ファンクションキーにも<ALT>、<CTRL>、<HYPER>、 <META>、<SHIFT>、<SUPER>の修飾キーを使えます。 それらを表現するには、シンボル名に接頭辞を付けます。
したがって、<META>を押し下げた<F3>キーのシンボルはM-f3
です。
複数の接頭辞を使うときには、アルファベット順に書くことを勧めますが、
キーバインディングの探索関数や修飾関数の引数では関係ありません。