Next: , Previous: Rebinding, Up: Key Bindings


28.4.6 初期化ファイルでのキーの変更

いつでもあるキーバインディングを設定しておきたければ、 その指定を個人の.emacsファイルにLispのコードとして書いておきます。

これを行うもっとも簡単な方法は、 ASCII文字とメタ修飾付きのASCII文字に対してのみ使えます。 たとえば、C-zshellにバインドするにはつぎのようにします。

     (global-set-key "\C-z" 'shell)

この例では1つの文字C-zから成る文字列定数を指定しています。 コマンド名shellのまえのクォート「'」は、 shellを変数ではなく定数シンボルとして扱う印です。 クォートがないと、Emacsはshellを変数として その値をただちに評価しようとします。 すると、望んでいることではなく、エラーになります。

つぎは、2文字のキー列をバインドする例です。

     (global-set-key "\C-xl" 'make-symbolic-link)

キー列にファンクションキーやマウスボタンイベントが含まれていたり、 C-=H-aなどの非ASCII文字が含まれているなら、 文字列よりもっと一般的な指定方法であるベクタを使った指定を使う必要があります。

Emacs Lispでのベクタの書き方は、その要素を中括弧(‘[...]’)で 囲みます。 要素は空白で区切ります。 要素がシンボルであれば、単にその名前だけを書けばよく、 区切り記号などは不要です。 要素が文字であれば、Lispの文字定数として、 つまり‘?’に続けてその文字が文字列中に現れるのと同じ書き方で、 書いてください。

ベクタを使ってC-=(ASCIIの範囲にないコントロール文字)、 H-a(ハイパー文字。ASCIIにはハイパー文字は含まれない)、 <F7>(ファンクションキー)、 C-Mouse-1(キーボード修飾付きのマウスボタン)を バインドする例を示します。

     (global-set-key [?\C-=] 'make-symbolic-link)
     (global-set-key [?\H-a] 'make-symbolic-link)
     (global-set-key [f7] 'make-symbolic-link)
     (global-set-key [C-mouse-1] 'make-symbolic-link)

単純な(文字列ですむ)場合にベクタを使ってもかまいません。 先の2つの例をベクタを使うように書き直すとつぎのようになります。

     (global-set-key [?\C-z] 'shell)
     
     (global-set-key [?\C-x ?l] 'make-symbolic-link)