次: Named ASCII Chars, 前: Init Rebinding, 上: Key Bindings
キー列には通常の文字以外にもファンクションキーを含めることができます。 キーボードの文字がLispの文字(実は整数です)で表されるのに対し、 ファンクションキーはLispシンボルで表されます。 ファンクションキーに単語のラベルが付いているなら、 その単語が対応するLispシンボルの名前になります。 たとえば普通に見られるファンクションキーとLispシンボルの対応はつぎのとおりです。
left
, up
, right
, down
begin
, end
, home
, next
, prior
select
, print
, execute
, backtab
insert
, undo
, redo
, clearline
insertline
, deleteline
, insertchar
, deletechar
f1
, f2
, ... f35
kp-add
, kp-subtract
, kp-multiply
, kp-divide
kp-backtab
, kp-space
, kp-tab
, kp-enter
kp-separator
, kp-decimal
, kp-equal
kp-0
, kp-1
, ... kp-9
kp-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)