次: Named ASCII Chars, 前: Init Rebinding, 上: Key Bindings
キー列には通常の文字以外にもファンクションキーを含めることができます。 キーボードの文字がLispの文字(実は整数です)で表されるのに対し、 ファンクションキーはLispシンボルで表されます。 ファンクションキーに単語のラベルが付いているなら、 その単語が対応するLispシンボルの名前になります。 たとえば普通に見られるファンクションキーとLispシンボルの対応はつぎのとおりです。
left, up, right, downbegin, end, home, next, priorselect, print, execute, backtabinsert, undo, redo, clearlineinsertline, deleteline, insertchar, deletecharf1, f2, ... f35kp-add, kp-subtract, kp-multiply, kp-dividekp-backtab, kp-space, kp-tab, kp-enterkp-separator, kp-decimal, kp-equalkp-0, kp-1, ... kp-9kp-f1, kp-f2, kp-f3, kp-f4これらの名前は習慣的なものですが、システムによっては (とりわけXウィンドウシステムを使っている場合は)、 別の名前になっている場合があります。 あるファンクションキーにどのシンボルが対応しているか調べるには、 C-h cに続いてそのキーを打鍵してください。
ファンクションキーのシンボルを含むキー列(あるいは、
ASCII以外の文字を含むもの)は文字列ではなくベクタで指定してください。
ベクタの構文では要素と要素のあいだは空白で区切り、
全体を中括弧``[...]''で囲みます。
たとえば、ファンクションキー`f1'をコマンドrmailにバインドするには、
つぎのようにします。
(global-set-key [f1] 'rmail)
右矢印キーをコマンドfowared-charにバインドするには、
つぎのようにします。
(global-set-key [right] 'forward-char)
これは、シンボルrightを要素とするベクタのLisp構文です。
(このバインディングはEmacsのデフォルト設定に入っている。)
ベクタを用いたキーの再定義ついてより詳しくは、See Init Rebinding。
キー列の中でファンクションキーと文字を混ぜることができます。
以下の例は、
C-x <NEXT>をコマンドforward-pageにバインドしています。
(global-set-key [?\C-x next] 'forward-page)
ここで、?\C-xはLispの文字定数で、文字C-xを表します。
ベクタのもう1つの要素であるnextは、シンボルですから`?'は不要です。
ファンクションキーに対して、修飾キー<CTRL>、<META>、<HYPER>、 <SUPER>、<ALT>、<SHIFT>を指定できます。 これらの修飾キーを指定するには、シンボル名のまえに`C-'、 `M-'、`H-'、`s-'、`A-'、`S-'を付けてください。 たとえば、Hyper-Meta-<RIGHT>で 1語先へ移動するにはつぎのように指定します。
(global-set-key [H-M-right] 'forward-word)