Next: Windows Mouse, Previous: Windows HOME, Up: Microsoft Windows [Contents][Index]
このセクションでは、Emacsでのキーボード入力に関するWindows固有の機能について説明します。
MS-Windowsプログラムで慣習的に使用されるキー組み合わせ(“キーボードショートカット”として知られる)の多くが、伝統的なEmacsのキーバインドと衝突します(これらEmacsのキーバインドは、Microsoftが設立される数年前には確立されていました)。衝突の例にはC-c、C-x、C-z、C-a、W-SPCが含まれます。CUAモード(CUA Bindingsを参照してください)を有効にすることにより、これらのいくつかの意味をMS-Windowsでの意味に近づけるよう再定義できます。
デフォルトでは、Altとラベルされたキーは、METAキーにマップされます。かわりにAlt
修飾を生成したい場合は、変数w32-alt-is-meta
にnil
をセットしてください。
MS-Windowsでは、Alt-TABのような特定のキー組み合わせは、Windowsが使用するために予約済みです。これらのキー組み合わせは、Emacsがそれを取得する前に、システムにより解釈されます。関数w32-register-hot-key
を使用して、Windowsに横取りされることなく、Emacsがキーシーケンスを取得できます。このキーシーケンスをホットキー(hot
key)として登録して、Windowsにたいするそのキー特別な意味をオーバーライドします(MS-Windowsは、フォーカスがEmacsにあるときだけ、そのキーシーケンスがホットキーだと指示されるので、他のWindowsアプリケーションにたいして、特別なキーは通常どおりの意味をもちます)。
w32-register-hot-key
に指定する引数は、define-key
で許されるベクター形式で、修飾キーあり/なしで、ただ1つのキーを指定しなければなりません。w32-alt-is-meta
がt
(デフォルト)の場合、メタ修飾はAltキーと解釈され、ハイパー修飾は常にWindowsキー(通常startという文字とWindowsのロゴがラベルされています)と解釈されます。この関数がキーシーケンスの登録に成功すると、ホットキーIDを返し、そうでない場合はnil
が返されます。
たとえば(w32-register-hot-key
[M-tab])
とすると、Emacs内で普通にM-TABを使用して、トップレベルにあるポイント位置の単語やシンボルを補完したり、以前にインクリメンタル検索の間に見つけた文字列にたいして、カレント検索文字列を補完することができます。
関数w32-unregister-hot-key
は、引数となるキーシーケンスにたいして、w32-register-hot-key
と逆のことを行ないます。
デフォルトでは、CapsLockキー(このキーは小文字を大文字に変換します)は通常の文字キーだけに効果をもちます。しかし変数w32-capslock-is-shiftlock
を非nil
値にセットした場合、CapsLockは非文字キーにも同様に効果をもつようになり、その非文字キーをタイプするとき、あたかもShiftキーが押されたかのようになります。
変数w32-enable-caps-lock
にnil
値をセットした場合、CapsLockキーは、ある文字にたいするシフトが押されたバージョンのキーではなく、かわりにシンボルcapslock
を生成します。デフォルト値はt
です。
同様にw32-enable-num-lock
がnil
の場合、NumLockキーはシンボルkp-numlock
を生成します。デフォルトはt
で、これはNumLockに期待された動作、すなわちテンキー上のキーのもつ意味の切り替えを行ないます。
変数w32-apps-modifier
は、Appsキー(通常は右Altキーと右Ctrlキーの間にあります)の効果を制御します。変数の値には、対応する修飾キーを示すシンボルhyper
、super
、meta
、alt
、control
、shift
のどれか1つを指定するか、nil
を指定してそれをキーapps
として扱います。デフォルトはnil
です。
変数w32-lwindow-modifier
は、左Windowsキー(通常はstartという文字とWindowsロゴがラベルされています)の効果を決定します。変数の値がnil
(デフォルト)の場合、このキーはシンボルlwindow
を生成します。これにhyper
、super
、meta
、alt
、control
、shift
のどれか1つを指定すると、対応する修飾キーを生成します。これに似た変数w32-rwindow-modifier
は右Windowsキーの効果を制御し、w32-scroll-lock-modifier
は同じことをScrLockキーにたいして行ないます。これらの変数がnil
にセットされている場合、右Windowsキーはシンボルrwindow
を生成し、ScrLockはシンボルscroll
を生成します。
EmacsがネイティブのWindowsアプリケーションとしてコンパイルされていると、Windowsメニューを呼び出すAltをタップ(tapping: 覗き見)するWindows機能をオフに切り替えます。これはEmacsではAltとして用いられるからです。Emacsを使用するとき、ユーザーが1度METAキーを押して、後で気が変わることがあります。もしこのキーがWindowsメニューを立ち上げる効果をもつ場合、それに続くコマンドの意味が変更されてしまいます。多くのユーザーは、これにイライラするでしょう。
w32-pass-alt-to-system
を非nil
値にセットすることにより、Altキーの覗き見にたいするWindowsのデフォルトの処理を再び有効にできます。
変数w32-pass-lwindow-to-system
とw32-pass-rwindow-to-system
は、左Windowsキーと右Windowsキーが、Windowsに渡されるか、Emacsに渡されるかを決定します。値がnil
の場合、これらのキーはEmacsに渡され、それ以外の場合はWindowsに渡されます。両方の変数のデフォルトはt
です。これらのキーをWindowsに渡すことにより、たとえばLwindowはStart
メニューを開くなどの、通常の効果が生成されます。22
変数w32-recognize-altgr
は、(もしそれがキーボードにあれば)AltGrキー(またはそれと同種のキー)が右Altと左Ctrlキーを一緒に押したときの組み合わせとするか、それともそれをAltGrキーとして認識するかを制御します。デフォルトはt
で、これはそれらのキーがAltGr
を生成することを意味します。これをnil
にセットすることにより、AltGrキー(またはそれと同種のキー)との組み合わせは、Ctrl修飾とMETA修飾の組み合わせとして解釈されます。
現在のところEmacsでは抑止できないが、低レベルでWindowsにとらえられる、“Windows”キーと他のキーの組み合わせがいくつかあります。たとえばLwindow
rは常にWindowsの‘Run’ダイアログをポップアップします。とはいえ変数w32-phantom-key-code
をカスタマイズすることが、あるケースでは助けになるかもしれません。